Я пытаюсь воспроизвести аудиофайл после того, как пользователь выбрал/поделился аудиофайлом в каком-либо файловом браузере. Для этого я использую фильтр, через который я получаю Uri аудиофайла. На основе Ури я могу играть. Uri используется MediaPlayer для открытия FileDescriptor.
Я храню Uri, чтобы использовать его после перезапуска приложения. Он работает со всеми файловыми браузерами, кроме приложения Android по умолчанию для загрузки. Если я открываю файл из приложения «Загрузки», я получаю Uri следующим образом:
content://com.android.providers.downloads.documents/document/25 - on android 7
Я могу играть. Но после перезапуска приложения я больше не могу играть в тот же uri. Я получаю исключение:
java.lang.SecurityException: Permission Denial:
opening provider com.android.providers.downloads.DownloadStorageProvider from
ProcessRecord{160760b 3618:com.sample/u0a71} (pid=3618, uid=10071)
requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
из документов об этом разрешении:
Это разрешение должно запрашиваться только приложением управления документами платформы. Это разрешение не может быть предоставлено сторонним приложениям.
Означает ли это, что приложение имеет только временное разрешение на файл? Есть ли какое-нибудь решение для этого?