我正在尝试从 Android 设备图库中读取照片以显示在我的应用中。
我的应用程序允许用户从图库中选择图像,并且 onActivityResult() 方法中的此代码保存文件名以供以后使用:
if (resultCode == Activity.RESULT_OK) {
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getActivity().getContentResolver().query(data.getData(), filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filename = cursor.getString(columnIndex);
cursor.close();
}
然后我稍后尝试在另一个活动中显示照片,如下所示:
ImageView photoImageView = (ImageView) itemView.findViewById(R.id.photoImageView);
Uri uri = Uri.fromFile(new File(photoFilename));
Log.i("AddInformationDialog", "URI found: " + uri);
photoImageView.setImageURI(uri)
但是我收到了这个 Permission Denied 错误:
WARN/ImageView(14618): Unable to open content: file:///mnt/sdcard/dcim/Camera/2012-05-31_09-37-03_660.jpg
java.io.FileNotFoundException: /mnt/sdcard/dcim/Camera/2012-05-31_09-37-03_660.jpg (Permission denied)
at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
我查看了清单权限,并没有看到明确允许应用程序从文件系统读取的权限。我错过了什么?
提前谢谢。