【发布时间】:2016-06-26 20:39:05
【问题描述】:
使用ACTION_GET_CONTENT 意图选择图像时,我得到一个无法打开文件的 URI。如果我尝试打开文件,如下所示:
InputStream in = new FileInputStream(new File(uri.getPath()));
它给出了以下异常:
03-11 15:14:36.132 20557-20557/my.package W/System.err﹕ java.io.FileNotFoundException: /document/image:9537: open failed: ENOENT (No such file or directory)
03-11 15:14:36.138 20557-20557/my.package W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:456)
03-11 15:14:36.138 20557-20557/my.package W/System.err﹕ at java.io.FileInputStream.<init>(FileInputStream.java:76)
/document/image:9537 似乎确实是一条不正确的路径,但是我该如何获得正确的路径呢?
我用这个逻辑打开图片选择器:
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
photoPickerIntent.putExtra("return-data", false);
startActivityForResult(Intent.createChooser(photoPickerIntent, "Complete action using"), PICK_FROM_FILE);
然后像这样在 onActivityResult 中检索 Uri:
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
....
Uri uri = data.getData();
我需要让文件进行解码以使其更小。
【问题讨论】:
标签: android image uri filenotfoundexception