我已经建立了一个博客客户端,您可以在其中从图库中选择照片以嵌入博客帖子。
出于某种原因,它在大多数手机上都不适用于小米手机。
我以这种方式从图库中挑选文件:
Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(i, 2);
我在选择后使用以下内容加载图片:
String imagePath=data.getData().ToString();
Uri fileURI = Uri.parse(imagePath);
try {
fileInputStream = ((Context)mView).getContentResolver().openInputStream(fileURI);
} catch (Exception e) {
/* Send logs to analyse later */
}
导致某些手机出现以下错误
Non-fatal Exception: java.io.FileNotFoundException: file:/storage/emulated/0/Download/FILE_NAME.png: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:456)
at java.io.FileInputStream.(FileInputStream.java)
我只是让用户在获得Marshmallow +版本的许可后尝试选择文件,因此这不是权限问题。
它适用于95%的用户,所以这是非常具体的。 试图在LG G2,华为Nova,Nexus 7和仿真器图像上重现4.2,4.4,5.0.2,7.0.2的问题,我无法重现它。
有什么想法吗?
答案 0 :(得分:0)
在onActivityResult()中使用
InputStream is = getContentResolver().openInputStream(data.getData());
不要试图找到文件。
将输入流用作文件输入流。