使用Universal-Image-Downloader下载图像时出现SecurityException

在我的应用程序中,我使用通用图像下载器BaseImageDownloader类来同步加载gallery的内容。对于来自Imageloader.getInstance()。loadImage asyncronious函数的相同内容,它不会给出任何安全exception并加载图像,因为它是真实的,但是当我尝试使用BaseImageDownloader同时下载它(也是Imageloader.getInstance()。loadImage()使得相同)我得到这个安全例外

09-02 18:49:43.971: W/System.err(4244): java.lang.SecurityException: Permission Denial: reading com.android.gallery3d.provider.GalleryProvider uri content://com.google.android.gallery3d.provider/picasa/item/5879964074642783474 from pid=4244, uid=10064 requires com.google.android.gallery3d.permission.GALLERY_PROVIDER, or grantUriPermission() 09-02 18:49:43.971: W/System.err(4244): at android.os.Parcel.readException(Parcel.java:1425) 09-02 18:49:43.971: W/System.err(4244): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185) 09-02 18:49:43.971: W/System.err(4244): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148) 09-02 18:49:43.971: W/System.err(4244): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:617) 09-02 18:49:43.971: W/System.err(4244): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:717) 09-02 18:49:44.011: W/System.err(4244): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:614) 09-02 18:49:44.011: W/System.err(4244): at android.content.ContentResolver.openInputStream(ContentResolver.java:449) 09-02 18:49:44.011: W/System.err(4244): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromContent(BaseImageDownloader.java:156) 09-02 18:49:44.011: W/System.err(4244): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:88) 09-02 18:49:44.011: W/System.err(4244): at com.uploader.data.UploadImageData.decodeSampledBitmapFromStream(UploadImageData.java:80) 

此外,我搜索了代码,你没有在配置或其他地方获得任何许可将是什么原因?

 public Bitmap decodeSampledBitmapFromStream(String path, int reqWidth, int reqHeight) throws IOException { BaseImageDownloader downloader = new BaseImageDownloader(getApplicationContext()); InputStream stream = downloader.getStream(path, null); final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(stream, new Rect(-1,-1,-1,-1), options); stream.close(); options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); options.inJustDecodeBounds = false; stream = downloader.getStream(path, null); Bitmap bitmap = BitmapFactory.decodeStream(stream, new Rect(-1,-1,-1,-1), options); stream.close(); return bitmap; } 

这不是UIL的错误, 请看这里 。 根据这个问题,你应该在第一次加载时将图像加载到内部存储器中,然后从那里读取图像。

请在主菜节中添加以下permissoions。

    

还请看看

如何使用FLAG_GRANT_READ_URI_PERMISSION授予对自定义内容提供程序的临时访问权限

我添加了对mainfest的许可并且它有效。 但我不知道没有那个UIL怎么做?