2016-07-25 25 views
1

Immer wenn ich versuche, ein Bild aus meiner Galerie zu wählen, erscheint das Erlaubnisfenster und fragt, ob die App auf meinen Medienspeicher zugreifen darf. Nach dem Erlauben funktioniert alles gut. Wenn ich das nächste Mal ein Bild aus meiner Galerie auswählen möchte, fragt die App erneut nach der gleichen Berechtigung.Ionic App auf Android Marshmallow wiederholt um Erlaubnis fragen, auch nach der Gewährung

Hier sind die Optionen für meine cordova Kamera-Plugin:

image_options = { 
    destinationType: Camera.DestinationType.DATA_URL, 
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
    correctOrientation: true, 
    cameraDirection: 0, 
    allowEdit: true, 
    encodingType: Camera.EncodingType.JPEG 
    }; 

Hier ist die (generiert) AndroidManifest.xml

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.0" package="com.mycompany.myapp" xmlns:android="http://schemas.android.com/apk/res/android"> 
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> 
    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> 
     <intent-filter android:label="@string/launcher_name"> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <service android:name="de.appplant.cordova.plugin.background.ForegroundService" /> 
</application> 
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
</manifest> 

Ich habe in den Einstellungen auch die App erlaubt ist sichergestellt, dass Zugriff auf "Speicher"

Gibt es etwas Offensichtliches, das ich falsch machen könnte?

+0

Für Andorid 6.0 müssen Sie Runtime-Erlaubnis vom Benutzer bekommen nur Verzögerung sie manifest ist nicht genug. –

+0

@Sohail Ich weiß. Und afaik ionic sollte das selbst handhaben. Wie gesagt, der Benutzer wird gefragt, ob er diese Erlaubnis erteilen möchte. Das Problem ist, dass sich die App nicht daran zu erinnern scheint. –

+0

@TinoA. wenn möglich, können Sie das Projekt auf github laden, so dass wir uns das Problem ansehen und simulieren können – Gandhi

Antwort

1

Nach Tagen des Googelns und Versuchen Zeug habe ich endlich das Problem gelöst, indem Sie manuell die CAMERA-Erlaubnis zum Android-Manifest hinzufügen. Zuerst hatte ich den Eindruck, dass das komplette Manifest auf dem ionischen Build/Run erstellt wird. Zweitens war es ein wenig komisch, dass ich die Kamera-Erlaubnis hinzufügen musste, um die Speicherberechtigung zu erhalten, zumal das Fotografieren kein Problem war.