我正在尝试从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)
我查看了Manifest权限,但没有看到明确允许应用从文件系统中读取的权限。我错过了什么?
提前完成。
答案 0 :(得分:0)
<强>重写强>
我无法重新创建您的错误,也许这是Droid Bionic特定问题。我能想到的唯一的事情是:文件不允许读取访问,或者锁定它以防止读取。这是一个黑暗中的镜头:
ImageView photoImageView = (ImageView) itemView.findViewById(R.id.photoImageView);
File file = new File(photoFilename);
file.setReadable(true);
Uri uri = Uri.fromFile(file);
Log.i("AddInformationDialog", "URI found: " + uri);
photoImageView.setImageURI(uri);