Как я могу запросить разрешение на доступ к внешним файлам в Android Q?

Слышал, что Андроид Q представил новую функцию безопасности под названием «Объемное хранилище», которая ограничивает доступ к файлам во внешнем хранилище. Моя проблема в том, что мне нужно сохранить текстовый документ в указанном пользователем месте из приложения. Требуется ли для этого какое-либо разрешение, а не READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE в устройствах Q?

1
0
334
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

My problem is I have to save a text document to a user specified location from the App

Используйте ACTION_CREATE_DOCUMENT, чтобы позволить пользователю указать местоположение. Вы можете использовать ContentResolver и его метод openOutputStream(), чтобы получить OutputStream для Uri, которое вы получаете от ACTION_CREATE_DOCUMENT. Затем вы можете написать свой текст к этому OutputStream.

Is this requires any kind of permission rather than READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE in Q devices?

ACTION_CREATE_DOCUMENT не требует разрешений и работает с Android 4.4.

Кроме того, вы можете записать свой файл в каталог, обозначенный getExternalFilesDir() на Context. Эта часть внешнего хранилища видна пользователю на Android Q и не требует дополнительных разрешений.

Или, если вы сохраните свой targetSdkVersion на уровне 28 или ниже, вы можете использовать WRITE_EXTERNAL_STORAGE и писать, где хотите, как вы это делали на Android 9.0+. Однако имейте в виду, что этот подход перестанет работать с Android R и когда вы повысите свой targetSdkVersion выше 28 (например, чтобы соответствовать требованиям Play Store 2020 года). Итак, использование ACTION_CREATE_DOCUMENT или, возможно, getExternalFilesDir() — лучший долгосрочный ответ.

Не могли бы вы помочь мне с stackoverflow.com/questions/63543414/…

jazzbpn 24.08.2020 05:47

Другие вопросы по теме