Erlaubnis Denial: android.die Genehmigung.READ_EXTERNAL_STORAGE

Ich bin mit einem MediaStore-Klasse in meiner Anwendung und mit Blick auf den unter Fehler(logcat),

E/DatabaseUtils: Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=5769, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:539)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:452)
at android.content.ContentProvider$Transport.query(ContentProvider.java:205)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:446)
05-11 17:27:35.982 5769-5769/com.media.wanware.fragmentdemo D/AndroidRuntime: Shutting down VM
05-11 17:27:35.984 5769-5769/com.media.wanware.fragmentdemo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.media.wanware.fragmentdemo, PID: 5769
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.media.wanware.fragmentdemo/com.media.wanware.fragmentdemo.MainActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=5769, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
   at android.app.ActivityThread.access$800(ActivityThread.java:151)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:135)
   at android.app.ActivityThread.main(ActivityThread.java:5254)
   at java.lang.reflect.Method.invoke(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=5769, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
   at android.os.Parcel.readException(Parcel.java:1546)
   at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
   at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
   at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
   at android.content.ContentResolver.query(ContentResolver.java:478)
   at android.content.ContentResolver.query(ContentResolver.java:422)
   at com.media.wanware.fragmentdemo.MainActivity.getAllSongsFromDevice(MainActivity.java:45)
   at com.media.wanware.fragmentdemo.MainActivity.onCreate(MainActivity.java:29)
   at android.app.Activity.performCreate(Activity.java:5990)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
   at android.app.ActivityThread.access$800(ActivityThread.java:151) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:135) 
   at android.app.ActivityThread.main(ActivityThread.java:5254) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at java.lang.reflect.Method.invoke(Method.java:372) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Ich lese diese Frage,

Android-Lesen externen Speicher gibt securityException

Aber ich platziert die Berechtigungen richtig in meinem manifest unten

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.media.wanware.fragmentdemo">

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="19" />

    <uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="19" />

    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">




        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Auch nach dem Lesen weiter ich ging auch durch diese unter Frage,

Android-Berechtigung funktioniert nicht, auch wenn ich es erklärt

Dem großen Grund für die nicht immer Ihre Berechtigung, heutzutage ist da
Ihr Projekt hat eine targetSdkVersion von 23 oder höher

Für diese Berechtigungen, nicht nur, dass Ihre targetSdkVersion 23+ app
müssen Sie das element(s), aber Sie müssen auch
bitten, für die Berechtigungen zur Laufzeit vom Benutzer auf Android 6.0+
Geräte, mit Methoden wie checkSelfPermission() und
requestPermissions().

Als vorübergehende Lösung, lassen Sie Ihre targetSdkVersion unter 23.

Aber meine Ziel-SDK ist unter 23 nur. Warum bin ich immer die gleichen Fehler ?

  • Was ist Ihre Compiler-und target-SDK, android-version auf Ihrem Android-Gerät testen...?
  • Compile SDK 19.
  • Auf welchem Gerät Sie es zu testen...? Und seine android-version...?
  • Auf Emulator, version 4.4.
  • Sind Sie sicher, es hat nichts zu tun mit stackoverflow.com/questions/4162447/... ?
  • Sie bauen mit den neuesten release-sdk. Passen Sie Ihre gradle verwenden die ältere Version sdk.
  • OP: ich bearbeitet habe, zu minimieren horizontale scrollen, wie es war schwer zu Lesen - FYI
  • Ich Tat es unwissentlich, bitte rückgängig machen . Es tut mir Leid

InformationsquelleAutor GeekDroid | 2016-05-11
Schreibe einen Kommentar