Как запросить доступ к конкретному файлу через SAF, зная только его реальный путь

В базе и преференсах хранятся пути к файлам.
Нужно обновить приложение, соответственно повысить targetSDK, соответственно перевести на Document API.

Вопрос: как теперь получить доступ к этим файлам?

Я понимаю что нужно запросить их через SAF, и чтобы юзер не искал их по всем
провайдерам можно указать стартовый uri:

intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, Uri.parse(startPath));

Но я не нашёл в API никакой возможности получить document uri из файла или файлового пути.

Попытка найти их через MediaStore не увенчалась успехом - как я понял они не попадают в её базу из-за маркера .nomedia.
Провайдер, выдающий файлы, не даёт информации по файлам, к которым не получен доступ.
Видится только одно решение - запрашивать доступ к корням томов, делать траверс папок и сравнивать имена и пути.
Но какой тогда вообще смысл этих нововведений, если разработчики будут запрашивать доступ ко всем файлам, чтобы найти один - пользователи будут его давать, потому что иначе приложение откажется работать, и вся хвалёная безопасность останется там же, где и была...


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