ACTION_PICK
ギャラリーから画像を選択する意図を使用しています。「投稿」、「プロフィール写真」などの一部のアルバムには、Picasa アイコンが付いています。そのようなアルバムの画像の場合、次のような URI を取得します。
content://com.google.android.gallery3d.provider/picasa/item/5769844615871490082
問題なく、この URI から画像を読み込むことができますContentResolver
。BitmapFactory
final InputStream ist = context.getContentResolver().openInputStream(intent.getData());
final Bitmap bitmap = BitmapFactory.decodeStream(ist);
しかし、アプリケーションを再起動した後、保存された URI を使用して画像を読み込むことができません。decodeStream()
が呼び出されたときにこれを取得しています:
03-11 12:34:56.502: A/libc(1172): Fatal signal 11 (SIGSEGV) at 0x00000408 (code=1), thread 1462 03-11 12:34:56.502:
W/ActivityManager(478): Permission Denial: opening provider
com.android.gallery3d.provider.GalleryProvider from
ProcessRecord{41cdd220 1172:com.mycompany.myapp/u0a10085}
(pid=1172, uid=10085) requires
com.google.android.gallery3d.permission.GALLERY_PROVIDER or
com.google.android.gallery3d.permission.GALLERY_PROVIDER
追加してみました
<uses-permission android:name="com.google.android.gallery3d.permission.GALLERY_PROVIDER"/>
マニフェストファイルに追加しましたが、役に立ちませんでした。
私の問題はこれに似ていると思いますが、そこには解決策はなく、回避策のみが示されています。保存された URI へのアクセス許可を要求することはできますか?