我正在使用ACTION_PICK
意图从图库中选择图像。一些相册,如“帖子”、“个人资料照片”等都标有 Picasa 图标。对于此类相册中的图像,我会得到一个类似于以下的 URI:
content://com.google.android.gallery3d.provider/picasa/item/5769844615871490082
我可以毫无问题地ContentResolver
从此URI 加载图像: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 的权限?