App-Berechtigungen für Android Marshmallow in PhoneGap

In Android Marshmallow müssen wir den Zugriff auf Location, File etc separat in Apps geben. Gibt es irgendwelche wan in PhoneGap App, die ich überprüfen kann, ist Berechtigungen verfügbar oder nicht und fordert den Benutzer auf, die Berechtigungen bereitzustellen.

  • Deaktivieren Sie die Animation des Schubladen-Symbols in der doppelten Navigationsschublade für die richtige Schublade
  • Öffnen Sie lokale KML-Datei in Google Maps auf Android
  • Kamera auf Android Eclipse Emulator:
  • Verbinde iPhone mit Android Wifi Direct Soft AP
  • Entfernen Sie einen Onclick-Listener
  • So starten Sie Service-only Android App
  • Espressotest fällt mit NoActivityResumedException oft aus
  • Welches ist die beste Methode, um eine Aufgabe wiederholt in Android zu excecute? (ZB: - Erfrischende Noten, Update Ui)
  • Was ist der beste Weg, um temporäre Dateien auf Android zu erstellen?
  • Auf Android eine POST-Anfrage mit URL-codierten Formulardaten ohne Verwendung von UrlEncodedFormEntity
  • Wenden Sie eine Animation auf eine Zeichenkette in Android an
  • Begrenzung der Abfrage in CursorLoader
  • 2 Solutions collect form web for “App-Berechtigungen für Android Marshmallow in PhoneGap”

    UPDATE 16/02/2016

    Phonegap Build unterstützt jetzt API 23 – hoooray!

    Oder wenn du lokal baust, nur Cordova / Phonegap CLI 6+ und du bekommst standardmäßig cordova-android @ 5 + Plattform.

    URSPRÜNGLICHE ANTWORT

    Derzeit ist dies sicherlich möglich mit der Cordova / Phonegap CLI, aber Phonegap Build noch nicht unterstützt API 23 (Android 6.0 / Marshmallow).

    Zuerst müssen Sie v5.0.0 (oder höher) der Android-Plattform verwenden, die API 23 verwendet.

    Ab heute ist die Standardversion 4.1.1 (die API 22 verwendet), also müssen Sie explizit die Version beim Hinzufügen von Plattform angeben:

    cordova platform add android@5.0.0 phonegap platform add android@5.0.0 

    Die Kern-Plugins selbst sind in den Prozess der Upgrade auf Support-Anforderung von geeigneten Android 6 Laufzeit-Berechtigungen. Also musst du die "blutende" Versionen direkt aus dem Master-Zweig des GitHub repos installieren, im Gegensatz zu der npm Plugin Registry. Verwenden Sie zum Beispiel:

     cordova plugin add https://github.com/apache/cordova-plugin-file 

    Was bekommst du Version 4.0.1-dev.

    Nicht die npm Release Version:

     cordova plugin add cordova-plugin-file 

    Was bekommst du v3.0.0

    Beachten Sie, dass die Versionen auf den Master-Filialen keine Releases sind, also Bugs enthalten können.

    Also die Alternative (die ich mich entschieden habe), ist es, weiterhin die Release-Versionen der Plugins (die noch nicht unterstützen die Anforderung von Android-Laufzeit-Berechtigungen), aber verwenden Sie Cordova-Diagnose-Plugin , um die Android-Laufzeit-Berechtigungen, die die Das entsprechende Kern-Plugin erfordert, bevor man versucht, das Core Plugin API zu verwenden.

    Um beispielsweise das Location-Plugin zu verwenden, verwenden Sie weiterhin die Release-Version über npm:

     cordova plugin add cordova-plugin-geolocation 

    Bevor Sie jedoch einen Standort anfordern, stellen Sie sicher, dass die Laufzeitberechtigung über das Diagnose-Plugin erteilt wurde:

     function requestLocation(){ navigator.geolocation.getCurrentPosition(onSuccess, onError, options); } cordova.plugins.diagnostic.getLocationAuthorizationStatus(function(status){ if(status == "GRANTED"){ requestLocation(); }else{ cordova.plugins.diagnostic.requestLocationAuthorization(function(status){ if(status == "GRANTED"){ requestLocation(); }else{ // Handle other cases } }, function(error){ console.error(error); }); } }, onError); 

    Es ist möglich, den Benutzer explizit zu bitten, eine bestimmte Berechtigung mit folgendem Cordova-Plugin zu aktivieren: https://www.npmjs.com/package/cordova-plugin-android-permissions

    Besonders für ältere Plugins kann das sehr nützlich sein.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.