Comment obtenir une lecture de stockage externe autorisations?
Je suis l'élaboration d'un lecteur mp3 application pour android et j'obtiens une erreur liées à des autorisations d'utilisateur(READ_EXTERNAL_STORAGE)
C'est mon code où je demande des autorisations:
int permissionCheck = ContextCompat.checkSelfPermission(PlayListActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE);
if (ContextCompat.checkSelfPermission(PlayListActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
//OPCIONAL(explicaciones de poque pedimos los permisos)
if (ActivityCompat.shouldShowRequestPermissionRationale(PlayListActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
} else {
//pedir permisos
ActivityCompat.requestPermissions(PlayListActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
permissionCheck);
et c'est le reste du code:
ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();
SongsManager plm = new SongsManager(PlayListActivity.this);
//get all songs from sdcard
this.songsList = plm.getPlayList();
//looping through playlist
for (int i = 0; i < songsList.size(); i++) {
//creating new HashMap
HashMap<String, String> song = songsList.get(i);
//adding HashList to ArrayList
songsListData.add(song);
}
//se añaden las canciones a la ListView mediante un adapter utilizando el layout playlist_item
ListAdapter adapter = new SimpleAdapter(this, songsListData,
R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
R.id.songTitle });
setListAdapter(adapter);
c'est l'erreur:
03-31 22:09:16.159 2258-2258/com.androidchatapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.androidchatapp, PID: 2258
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidchatapp/com.androidchatapp.PlayListActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=2258, uid=10184 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5451)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=2258, uid=10184 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
at android.content.ContentResolver.query(ContentResolver.java:493)
at android.content.ContentResolver.query(ContentResolver.java:435)
at com.androidchatapp.SongsManager.getPlayList(SongsManager.java:48)
at com.androidchatapp.PlayListActivity.onCreate(PlayListActivity.java:65)
at android.app.Activity.performCreate(Activity.java:6323)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5451)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
- Avez-vous ajouté l'autorisation dans le fichier manifest?. <uses-permission android:name="android.la permission.READ_EXTERNAL_STORAGE"/>
InformationsquelleAutor Muse App | 2017-03-31
Vous devez vous connecter pour publier un commentaire.
Vous avez demandé la permission de le code , mais vous êtes probablement oublier d'ajouter cette autorisation balise dans le fichier manifeste
Android introduire de l'exécution l'autorisation de Guimauve OS, donc nous avons besoin de mettre en œuvre d'exécution de l'autorisation à Manifester de l'autorisation. si CompileSdkVersion = 23
Vous pouvez demander la permission lors de votre écran (dans onCreate()) ou cliquez sur l'événement de votre bouton (Comme-jouer de la Musique )
utiliser cette méthode pour vérifier l'exécution de l'Autorisation est de permettre ou non
si elle retourne false alors appel ci-dessous la méthode, il affichera une boîte de dialogue pour l'autorisation