Я хочу проверить разрешение на хранение (а также права на чтение/запись файлов) для всех 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
Разрешения на чтение файлов и запись и хранение для всех API (Android) ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Разрешения на чтение файлов и запись и хранение для всех API (Android)
Anonymous » » в форуме Android - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Android – обработка разрешения на хранение для API 33 и более поздних версий
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Android – обработка разрешения на хранение для API 33 и более поздних версий
Anonymous » » в форуме Android - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-