Как получить разрешение на чтение uri при повторной попытке uri из общих предпочтений в android?
я пытаюсь получить изображение, но оно не работает, если я перезапущу свое приложение
я получаю эту ошибку
E/path: getRealPathFromURI исключение : java.lang.SecurityException: отказ в разрешении: открытие провайдера com.google.android.apps.photos.contentprovider.impl.MediaContentProvider из ProcessRecord{c3b0cec 9068:com.rayvatapps.launcher/u0a94} (pid=9068, uid=10094), который не экспортируется из UID 10066
E/BitmapFactory: невозможно декодировать поток: java.io.FileNotFoundException: / (разрешение отказано)
пожалуйста помогите мне любое предложение было бы полезно
Что я уже пробовал:
<pre>SharedPreferences sharedPreferences = getSharedPreferences("MyFile", 0); String image = sharedPreferences.getString("image",""); if(!image.equals("")) { Uri path = Uri.parse(image); if(!path.equals("")) { File f = new File(getRealPathFromURI(mContext,path)); Drawable d = Drawable.createFromPath(f.getAbsolutePath()); rlMain.setBackground(d); } }
метод
private String getRealPathFromURI(Context context, Uri contentUri) { Cursor cursor = null; try { String[] proj = { MediaStore.Images.Media.DATA }; cursor = context.getContentResolver().query(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow( MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } catch (Exception e) { Log.e("Path", "getRealPathFromURI Exception : " + e.toString()); return ""; } finally { if (cursor != null) { cursor.close(); } } }