risposta

4

È necessario chiedere READ_EXTERNAL_STORAGE. Sarai in grado di accedere alla galleria senza di essa, ma se vuoi fare qualcosa con i media che ottieni dalla galleria avrai bisogno dell'autorizzazione READ.

Un test rapido su ciò che accade in onActivityResult dopo che un'immagine è stato scelto forma galleria:

Permesso negazione: lettura com.android.providers.media.MediaProvider contenuto uri: // media/esterni/images/media da pid = 8405, uid = 10177 richiede android.permission.READ_EXTERNAL_STORAGE, o grantUriPermission()

0

Per l'autorizzazione personalizzato, è possibile utilizzare il permesso di runtime se si utilizza Android 6.0 o above.This il codice potrebbe aiutarti.

Se la vostra applicazione non ha già il permesso di cui ha bisogno, l'applicazione deve chiamata uno dei requestPermissions() per richiedere le autorizzazioni appropriate. La tua app supera le autorizzazioni che desidera e anche un codice di richiesta intero specificato per identificare questa richiesta di autorizzazione . Questo metodo funziona in modo asincrono: restituisce immediatamente e, dopo che l'utente ha risposto alla finestra di dialogo, il metodo chiama il metodo di callback dell'app con i risultati, passando lo stesso codice di richiesta trasferito dall'app a 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

Problemi correlati