5

Mam pytania dotyczące uprawnień do uruchamiania systemu Android 6. Jeśli użytkownik chce wybrać zdjęcie z galerii, czy powinniśmy poprosić o pozwolenie READ_EXTERNAL_STORAGE? Wygląda na to, że mogłem uzyskać dostęp do galerii, mimo że wyłączam pozwolenie na przechowywanie. Dzięki.Android 6 runtime zezwolenie na dostęp do galerii.

Odpowiedz

4

Musisz poprosić o READ_EXTERNAL_STORAGE. Będziesz mógł uzyskać dostęp do galerii bez niego, ale jeśli chcesz zrobić cokolwiek z multimediami, które dostajesz z galerii, będziesz potrzebować pozwolenia READ.

Szybki test na to, co dzieje się w onActivityResult po obrazie zostało odebrane formularz galerii:

Permission Denial: czytanie com.android.providers.media.MediaProvider uri treści: // media/zewnętrzny/images/media z pID = 8405, uid = 10177 wymaga android.permission.READ_EXTERNAL_STORAGE lub grantUriPermission()

0

Dla niestandardowej zezwolenia, może wykorzystać uprawnienia wykonawcze jeśli używasz Androida 6.0 lub above.This kod może ci pomóc.

Jeśli aplikacja nie mają już pozwolenie potrzebuje, aplikacja musi wezwanie jedna z requestPermissions() metody, aby zwrócić się do odpowiednie uprawnienia. Twoja aplikacja przekazuje wymagane uprawnienia, a także również kod żądania liczby całkowitej, który określasz, aby zidentyfikować to żądanie uprawnień z zakresu . Ta metoda działa asynchronicznie: od razu zwraca , a po odpowiedzi użytkownika na okno dialogowe system wywołuje metodę wywołania zwrotnego aplikacji z wynikami, przekazując ten sam kod żądania, który aplikacja przekazała do 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

Powiązane problemy