Разрешение на изображение из Галереи теряется после перезапуска.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Разрешение на изображение из Галереи теряется после перезапуска.

Сообщение Anonymous »

Мое приложение позволяет пользователю просматривать некоторые выбранные изображения из галереи или других мест. Я запрашиваю Uri изображений через:

Код: Выделить всё

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, PickerFragment.PICK_PHOTO);
А затем получите Uri в onActivityResult (int requestCode, int resultCode, данные намерения) и получите доступ к этим изображениям, чтобы поместить их в представления моего приложения через:

Код: Выделить всё

Uri imageUri= data.getData();
Когда приложение завершает работу, я сохраняю все Uri в своей базе данных в виде строк с помощью:

Код: Выделить всё

String imageUriString = imageUri.toString();
saveToDB (imageUriString);
Однако, когда я перезапускаю приложение и восстанавливаю все Uri из моей базы данных через:

Код: Выделить всё

String imageUriString = restoreFromDB ();
imageUri = Uri.parse (imageUriString);
приложение больше не имеет разрешений для этих Uri в Android 7.1.
Я получаю доступ к изображениям через:

Код: Выделить всё

ContentResolver cr = mContext.getContentResolver();
InputStream is = cr.openInputStream(imageUri);
BitmapFactory.decodeStream(is, null, o);
Но получите это исключение:

Код: Выделить всё

java.lang.SecurityException: Permission Denial: opening provider com.google.android.apps.photos.contentprovider.impl.MediaContentProvider from ProcessRecord
Есть ли элегантный и законный способ сохранить это разрешение?
Я пытался прочитать всю документацию о разрешениях, но очень запутался.

Был бы признателен, если бы вы указали мне правильное направление для обучения.

PS Копирование изображений в память приложения с разрешения Ури Lasts был вариантом, но я бы хотел этого избежать. По крайней мере, чтобы посмотреть, возможно ли это.

PPS У меня есть все разрешения, такие как запись и чтение камеры и внешнего хранилища.

Подробнее здесь: https://stackoverflow.com/questions/467 ... -re-launch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»