Tôi đang sử dụng mục đích ACTION_PICK
để chọn hình ảnh từ thư viện. Một số album như "Bài đăng", "Ảnh tiểu sử", v.v. được đánh dấu bằng biểu tượng Picasa. Đối với hình ảnh từ các album như vậy tôi có được một URI tương tự như sau:Cách tải hình ảnh Picasa từ URI?
content://com.google.android.gallery3d.provider/picasa/item/5769844615871490082
tôi có thể tải một hình ảnh từ URI này sử dụng ContentResolver
và BitmapFactory
với không có vấn đề:
final InputStream ist = context.getContentResolver().openInputStream(intent.getData());
final Bitmap bitmap = BitmapFactory.decodeStream(ist);
Nhưng tôi không thể tải một hình ảnh sử dụng URI được lưu trữ sau khi tôi khởi động lại ứng dụng. Tôi nhận được điều này khi decodeStream()
được gọi là:
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
Tôi cố gắng thêm
<uses-permission android:name="com.google.android.gallery3d.permission.GALLERY_PROVIDER"/>
đến file manifest nhưng nó đã không giúp đỡ.
Tôi nghĩ rằng vấn đề của tôi tương tự như this one, nhưng không có giải pháp nào được cung cấp ở đó, chỉ có giải pháp thay thế. Có thể yêu cầu quyền truy cập URI được lưu trữ không?
Nội dung-URI có nhiều khả năng giới hạn thời gian, và chỉ hoạt động trong bối cảnh của ACTION_PICK. Bạn sẽ cần lưu vào bộ nhớ cache hình ảnh trong ứng dụng của mình vì không có gì đảm bảo rằng nội dung thậm chí có sẵn sau này. – 323go
Tôi thề im gona chạy vào cùng một vấn đề, yêu thích một lần nữa – JRowan
Bạn đã tìm thấy một giải pháp cho điều này? Tôi đang đối mặt với vấn đề tương tự. –