Android权限在阅读照片时被拒绝

时间:2012-06-01 21:01:55

标签: android gallery photos permission-denied

我正在尝试从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权限,但没有看到明确允许应用从文件系统中读取的权限。我错过了什么?

提前完成。

1 个答案:

答案 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);