Как запросить доступ к конкретному файлу через SAF, зная только его реальный путь
В базе и преференсах хранятся пути к файлам.
Нужно обновить приложение, соответственно повысить targetSDK, соответственно перевести на Document API.
Вопрос: как теперь получить доступ к этим файлам?
Я понимаю что нужно запросить их через SAF, и чтобы юзер не искал их по всем
провайдерам можно указать стартовый uri:
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, Uri.parse(startPath));
Но я не нашёл в API никакой возможности получить document uri из файла или файлового пути.
Попытка найти их через MediaStore не увенчалась успехом - как я понял они не попадают в её базу из-за маркера .nomedia.
Провайдер, выдающий файлы, не даёт информации по файлам, к которым не получен доступ.
Видится только одно решение - запрашивать доступ к корням томов, делать траверс папок и сравнивать имена и пути.
Но какой тогда вообще смысл этих нововведений, если разработчики будут запрашивать доступ ко всем файлам, чтобы найти один - пользователи будут его давать, потому что иначе приложение откажется работать, и вся хвалёная безопасность останется там же, где и была...