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)
マニフェストのアクセス許可を確認しましたが、アプリがファイル システムから読み取ることを明示的に許可するものはありませんでした。私は何が欠けていますか?
事前にサンクス。