Android – обработка разрешения на хранение для API 33 и более поздних версийJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Android – обработка разрешения на хранение для API 33 и более поздних версий

Сообщение Anonymous »

Из-за обновлений Политики конфиденциальности Google, если основной целью вашего приложения не является постоянный доступ к хранилищу/галерее (например, приложения для социальных сетей), Google не одобряет публикацию приложения в Play Store, если READ_MEDIA_IMAGES или MANAGE_EXTERNAL_STORAGE объявлен в файле манифеста. Google утверждает, что вместо этих разрешений можно использовать Image Picker (ограниченный доступ к галерее).
Однако, поскольку приложение поддерживает широкий спектр версий (API 23 и выше), Контроль разрешений READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE возвращает false на устройствах API 33 и выше в случае запроса разрешения, поэтому соответствующая операция не может быть выполнена, хотя используется Image Picker.
Псевдокод того, что я делаю:

Код: Выделить всё

if (hasStoragePermission()) {
doSomething() // like access galery
} else {
requestStoragePermission()
}

Код: Выделить всё

fun hasStoragePermission() : Boolean {
return
if (Build.Version_Code >= Tiramisu) {
true // I know that this way is not good but if I control the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE, it returns false
} else {
hasPermission(READ_EXTERNAL_STORAGE) && hasPermission(WRITE_EXTERNAL_STORAGE)
}
}

Код: Выделить всё

fun requestStoragePermission() : Boolean {
if (Build.Version_Code >= Tiramisu) {
requestPermission(READ_EXTERNAL_STORAGE)
} else {
requestPermission(READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE)
}
}
Примечание. Если ваше приложение предназначено для Build.VERSION_CODES.R или выше, WRITE_EXTERNAL_STORAGE не имеет никакого эффекта.
Короче говоря, я использую Image Picker для всех поддерживаемых API, кроме API 32 и ниже, мне нужно запросить внешнее хранилище READ и WRITE, поэтому я правильно запрашиваю и проверяю статус. Однако при использовании API 33 и более поздних версий я не могу запросить какие-либо разрешения, связанные с хранилищем или мультимедиа, из-за политики конфиденциальности.
Как мне следует обращаться с разрешением на хранение для API 33 и более поздних версий?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -and-above
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»