0

我在获取 Uri.getPath() 时遇到了问题,包括 /-1/1/ 如下所示,Uri 正在进入

protected void onActivityResult(int reqCode, int resultCode, Intent data)

从 PICK Multiple Images 如下

 ClipData.Item item = clipData.getItemAt(i);
 Uri uri = item.getUri();

我尝试从 Uri 获取文件,以下示例代码总是出错: FileNotFound

private void getImg(Uri uri){
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(new File(uri.getPath()).getAbsolutePath(), options);
    int imageHeight = options.outHeight;
    int imageWidth = options.outWidth;
    /....... some code ...

    // ArrayList<File> 
    mFile.add(new File(uri.getPath()); 
}



06-29 12:33:34.829 8160-8160/com.jinn.mutita.photoImx E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: 
/-1/1/content:/media/external/images/media/15878/ORIGINAL/NONE/3385104: open failed: ENOENT (No such file or directory)

但是,如果我得到以下内容并保存到本地文件:它可以完成。

InputStream input = thiscontext.getContentResolver().openInputStream(uri);

但是我可以先在本地安全输入流,请帮助,我已经搜索过但不确定 Uri 格式是否已更改或现在。

如何处理带有来自 Uri 的路径的文件?. 谢谢

4

1 回答 1

1

我刚刚发现这个并解决了问题,因为权限

在异步任务期间未授予Android存储访问框架持久权限

于 2017-07-11T04:10:10.440 回答