5

У меня возникли вопросы относительно разрешения на запуск Android 6. Если пользователь хочет выбрать фотографию из галереи, мы должны попросить разрешения READ_EXTERNAL_STORAGE? Похоже, я мог получить доступ к галерее, хотя я отключил разрешение на хранение. Благодарю.Разрешение на использование Android 6 для доступа к галерее.

ответ

4

Вам необходимо запросить READ_EXTERNAL_STORAGE. Вы сможете получить доступ к галерее без нее, но если вы хотите что-либо сделать со средствами массовой информации, которые вы получаете из галереи, вам понадобится разрешение READ.

Быстрый тест на то, что происходит в onActivityResult после изображения была выбрана Сформируйте галерея:

Разрешение Отрицание: чтение com.android.providers.media.MediaProvider URI контента: // СМИ/внешний/изображений/медиа из PID = 8405, UID = 10177 требует android.permission.READ_EXTERNAL_STORAGE или grantUriPermission()

0

Для изготовленного на заказ разрешения, вы можете использовать разрешение выполнения, если вы используете Android 6.0 или above.This код может вам помочь.

Если ваше приложение уже не имеет разрешения ему необходимо, приложение должно вызов один из requestPermissions() методы запросить соответствующие разрешения. Ваше приложение передает необходимые ему разрешения, а также представляет собой код целочисленного запроса, который вы указываете для идентификации этого запроса . Этот метод функционирует асинхронно: он сразу возвращает , и после того, как пользователь отвечает на диалоговое окно, система вызывает метод обратного вызова приложения с результатами, передавая тот же код запроса , который приложение передало requestPermissions().

// Here, thisActivity is the current activity 
if (ContextCompat.checkSelfPermission(thisActivity, 
       Manifest.permission.READ_CONTACTS) 
     != PackageManager.PERMISSION_GRANTED) { 

    // Should we show an explanation? 
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
      Manifest.permission.READ_CONTACTS)) { 

     // Show an explanation to the user *asynchronously* -- don't block 
     // this thread waiting for the user's response! After the user 
     // sees the explanation, try again to request the permission. 

    } else { 

     // No explanation needed, we can request the permission. 

     ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Manifest.permission.READ_CONTACTS}, 
       MY_PERMISSIONS_REQUEST_READ_CONTACTS); 

     // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an 
     // app-defined int constant. The callback method gets the 
     // result of the request. 
    } 
}  

To Know more about runtime permission

https://developer.android.com/training/permissions/requesting.html

Смежные вопросы