我在获取 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 的路径的文件?. 谢谢