我在相册中打开一张图片并获取 Uri。然后我将 Uri 转换为文件路径。在日志中,它显示为 mnt/storage/emulated/0/xxx.jpg 之类的内容。我将 Uri 转换为文件路径,如下所示:
Cursor cursor = GlobalObjectManager.getInstance().getContext().getContentResolver()
.query(filePathUri, null, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
fileName = cursor.getString(column_index);
问题是,当我使用函数打开文件时,它会捕获 FileNotFoundException。
String path = "mnt/storage/emulated/0/xxx.jpg";
FileInputStream in = new FileInputStream(path);
该代码在其他运行 Android 2.3-4.1 的设备上运行良好。据我所知,我的 Nexus 4 运行 Android 4.2 并且 mnt/storage/emulated/0/ 适用于多用户。
在我的应用程序中,我必须使用 FileInputStream() 函数来读取文件开头的字节数据。
谁能告诉我如何修复这个错误?谢谢!
好的,我修复它。我犯了一个大错误!我不必要地在 storage/ 前面添加了 mnt/ ,它需要错误。