如何加载由URI Picasa图片?(How to load a Picasa image from

2019-08-17 11:24发布

我使用ACTION_PICK意图从图库中选择图像。 如“帖子”,“ 头像”等专辑的一些标有Picasa图示。 对于从这样的专辑图片,我得到一个URI与此类似:

content://com.google.android.gallery3d.provider/picasa/item/5769844615871490082

我可以加载从这个URI使用图像ContentResolverBitmapFactory没有问题:

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权限?

Answer 1:

尝试打开输入流这样的

ContentResolver res = context.getContentResolver();
Uri uri = Uri.parse(intent.getData().toString());
res.openInputStream(uri);


文章来源: How to load a Picasa image from URI?