在Kindle Fire(android)上阅读打开的电子邮件附件
要从所附文件中读取数据,我使用:在Kindle Fire(android)上阅读打开的电子邮件附件,android,uri,email-attachments,kindle-fire,Android,Uri,Email Attachments,Kindle Fire,要从所附文件中读取数据,我使用: Uri dataUri = getIntent().getData(); ContentResolver cr = getContentResolver(); String readXmlString = ""; try { InputStream inputStream = cr.openInputStream(dataUri); readXmlString = FileUtils.readFromInputStream(inputStream
Uri dataUri = getIntent().getData();
ContentResolver cr = getContentResolver();
String readXmlString = "";
try {
InputStream inputStream = cr.openInputStream(dataUri);
readXmlString = FileUtils.readFromInputStream(inputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
在大多数设备上,该代码运行良好,但在KindleFire上,我遇到了一个问题。我已经调试过了。当内容解析器试图打开输入流时,就会出现问题。因此,我在readXmlString中有类似的内容:��+v�(�קi�^����%Z��ܩz��ʗ����
我的readFromInputStream的代码:
public static String readFromInputStream(InputStream inputStream){
StringBuilder total = new StringBuilder();
try {
BufferedReader r = new BufferedReader(
new InputStreamReader(inputStream)); //also tried: new InputStreamReader(inputStream, "UTF-8")
String line;
while ((line = r.readLine()) != null) {
total.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return total.toString();
}
看起来电子邮件应用程序只提供二进制文件。您使用哪些文档尝试读取XML?如果电子邮件应用程序在封面下使用任何XML,我会非常惊讶。这很奇怪,但现在这个问题没有出现。