В виджетах я показываю изображения с SDCard с помощью remoteView.setImageViewUri()
. Эта стратегия работает правильно, за исключением MarshMallow:
Ошибка:
Unable to open content: file:///storage/emulated/0/Android/data/applicaitonPackage/files/file.png
open failed: EACCESS (Permission denied)
Понятно, что это проблема разрешений, но я не знаю, как предоставить разрешения для контейнера виджета и теоретически (см. Примечание 1), изображения уже хранятся в общем хранилище.
Примечание 1. Каталог, в котором хранятся изображения, является общим хранилищем в Environment.getExternalStorageDirectory()
Примечание 2: приложение не адаптировано к MarshMallow и использует targetSdkVersion = 15
Примечание 3. Не просто ответьте на вопрос о новых разрешениях времени выполнения в MarshMallow. Я уже знаю изменения прав доступа, и это не проблема, потому что приложение нацелено на SDKVersion 15, и у приложения нет никаких проблем с доступом к внешнему хранилищу, проблема заключается в контейнере виджетов, который является тем, который, как я подозреваю, не имеет разрешения.