Я пытаюсь получить список всех изображений на устройстве. Ключ команда для достижения этой цели является запрос команды:не удается получить android.permission.READ_EXTERNAL_STORAGE
Cursor cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
null, null);
, который я поставил в методе OnCreate() от основной деятельности.
в файле манифеста я помещал необходимого разрешения (в узле корень ):
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Насколько я понимаю, это все, что мне нужно сделать. Однако этот код не работает (при указанной выше команде) с исключением безопасности, говоря мне, что мне нужно READ_EXTERNAL_STORAGE разрешение. Я думал, что попросил об этом, но его там нет. Я попытался отладить его, и его там нет. Я попытался добавить команду requestPermissions (...) перед запросом, и это не сработает.
точное сообщение об ошибке я получаю это:
java.lang.RuntimeException: Unable to start activity componentInfo{com.galamit.pic1/com.galamit.pic1.MainActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=26249, uid=10012 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
Я чувствую, что я что-то пропустил довольно основной, но не могу понять, что это могло бы быть. Любая подсказка?
EDIT: разрешение запроса часть выглядит следующим образом:
if(this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)== PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
}
Пожалуйста, объясните, что означает «это не работает». Кроме того, вы можете рассмотреть возможность вызова вашего запроса 'requestPermissions()' как части [mcve]. – CommonsWare
см. Исключение. Я получаю всего несколько строк позже. – amit
«см. Исключение, которое я получаю всего несколько строк позже» - это не объясняет, что «он не работает» означает в отношении вызова 'requestPermissions(). Вы не получаете это конкретное исключение из вызова 'requestPermissions()'. – CommonsWare