Разрешения на чтение файлов и запись и хранение для всех API (Android)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Разрешения на чтение файлов и запись и хранение для всех API (Android)

Сообщение Anonymous »

Я хочу проверить разрешение на хранение (а также права на чтение/запись файлов) для всех API. Я что-то запутался. Потому что в старом API это называется android.permission.WRITE_EXTERNAL_STORAGE, но в новом API для ограниченного хранилища эти разрешения не нужны. Теперь разрешения на хранение
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.READ_MEDIA_VIDEO,
Manifest.permission.READ_MEDIA_AUDIO

Но мое приложение будет работать во всех API. Поэтому мне нужен «один метод», который мог бы проверять все необходимые права доступа к файлам/хранилищу, соответствующие всем API (до 34). Я пытаюсь сделать следующее, но кажется, что некоторые ошибки ANR в трассировке стека игровой консоли. Я не могу понять, есть ли какие-либо проблемы в моих кодах, я думаю, достаточно ли приведенного ниже метода для проверки разрешений на хранилище (включая разрешения на уведомления) для всех API? Любая помощь приветствуется, заранее спасибо:
public static boolean checkFilePermissions(Context mContext) {

int permissionReadExternalStorage;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
permissionReadExternalStorage = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.READ_MEDIA_IMAGES);
else
permissionReadExternalStorage = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.READ_EXTERNAL_STORAGE);

int permissionWriteExtarnalStorage;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
permissionWriteExtarnalStorage = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.READ_MEDIA_AUDIO);
else
permissionWriteExtarnalStorage = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.WRITE_EXTERNAL_STORAGE);

List listPermissionsNeeded = new ArrayList();
if (permissionWriteExtarnalStorage != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
listPermissionsNeeded.add(Manifest.permission.READ_MEDIA_AUDIO);
else
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);

}

if (permissionReadExternalStorage != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
listPermissionsNeeded.add(Manifest.permission.READ_MEDIA_IMAGES);
else
listPermissionsNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);

}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

int permissionVideoStorage = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.READ_MEDIA_VIDEO);
if (permissionVideoStorage != PackageManager.PERMISSION_GRANTED) {

listPermissionsNeeded.add(Manifest.permission.READ_MEDIA_VIDEO);

}

int notificationPermission = ContextCompat.checkSelfPermission(mContext,
Manifest.permission.POST_NOTIFICATIONS);

if (notificationPermission != PackageManager.PERMISSION_GRANTED) {

listPermissionsNeeded.add(Manifest.permission.POST_NOTIFICATIONS);

}

}
return listPermissionsNeeded.isEmpty();
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... pi-android
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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