Scoped Storage - доступ к папке загрузки

Я нацелен на Android 10 и не использую android:requestLegacyExternalStorage. Я используюDownloadManager загрузить в папку загрузки через: request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName). Слушаю трансляцию загрузки полной, извлекаю uri (file:///storage/emulated/0/Download/<name>.pdf) и откройте его в pdf-ридере через FileProvider. Работает... почему? Разве он не должен работать с Android 10 и хранилища с ограниченным объемом? Почему мне разрешен доступ к файлам в папке загрузки?

РЕДАКТИРОВАТЬ: Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).listFiles() перечисляет все файлы, хотя в документе говорится:

Чтобы повысить конфиденциальность пользователей, прямой доступ к общим / внешним устройствам хранения не рекомендуется. Когда приложение нацелено на Q, путь, возвращаемый этим методом, больше не доступен для приложений напрямую.

1 ответ

Решение

Это было решение:

Если приложение установлено с включенным устаревшим внешним хранилищем, оно остается в этом режиме до тех пор, пока не будет удалено.

Сменить флаг и перезапустить приложение не получится.