Как проверить доступность файла по его Uri

Перевожу приложение на использование Storage Access Framework. Приложение сохраняет свои настройки в файл который расположен где-либо. Используя ACTION_OPEN_DOCUMENT получаю uri файла, а так же удерживаю права на него с помощью takePersistableUriPermission. Сохраняю uri.toString() и прекрасно с ним работаю в фоне. Теперь приложение устанавливаю на другое устройство и синхронизирую настройки в которых хранится тот самый uri.toString(). Теперь при обращении к этому источнику приложение вылетает с ошибкой

java.lang.SecurityException: Permission Denial: opening provider com.google.android.apps.docs.storagebackend.StorageBackendContentProvider from ProcessRecord{9b012c9 5733:ru.alexeydubinin.holidays/u0a317} (pid=5733, uid=10317) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs

Пытался обработать при помощи try, но не получается. Как быть? Спасибо.


Ответы (1 шт):

Автор решения: Barmaley

Это означает ровно то что написано, а именно права на доступ к файлу вы получите только после отработки Intentа ACTION_OPEN_DOCUMENT

Я бы советовал файл после отработки ACTION_OPEN_DOCUMENT скопировать себе во внутреннее хранилище и дальше уже спокойно с ним работать.

→ Ссылка