0

Ich halte eine Sicherheitsausnahme, wenn ich versuche Standortaktualisierungen in API 23. Das System habe ich nicht über die entsprechenden Berechtigungen zu denken scheint zu bekommen:Zugriff auf das Anwender Lage in API 23 wirft Sicherheitsausnahme Obwohl Berechtigungen erteilt werden

java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations. 

wenn ich jedoch für Benutzer-Standort Berechtigungen bin Überprüfung, bevor der Anruf an die Ortungsdienste zu machen und sowohl feine als auch grobe Position zurückkehren PERMISSION_GRANTED:

private boolean locationPermissionsGranted(Context context){ 
    int fineLocation = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION); 
    int coarseLocation = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION); 
    return ((fineLocation == PackageManager.PERMISSION_GRANTED) || (coarseLocation == PackageManager.PERMISSION_GRANTED)); 
} 

ich habe Berechtigungen zur Laufzeit durch den Benutzer auffordert, Berechtigungen zu erteilen mit t er Systemdialog:

ActivityCompat.requestPermissions(
      this, 
      new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 
      Permissions.ACCESS_FINE_LOCATION.getPermission()); 

Ich bekomme die Ausnahme nach Berechtigungen erteilt werden, weil mein boolean-Check für, ob ich Zugang zu Lage true zurück, aber das System wird nicht lassen Sie mich Zugang Lage. Ich teste dies auf einem OnePlus One und denke, dass der Datenschutzbeauftragte vielleicht mit den Dingen beschäftigt ist, aber ich habe es so eingestellt, dass ich den Zugriff auf den Standort erlauben kann. Ich bin also nicht sicher, warum der Fehler weiterhin besteht.

+0

anfordern Was ist Ihr 'targetSdkVersion'? – CommonsWare

+0

minSdkVersion 11 targetSdkVersion 23 – Rarw

+0

Haben Sie die entsprechenden '' - Elemente zu Ihrer AndroidManifest.xml hinzugefügt? – Wesley

Antwort

-2

Requesting Permissions at Run Time

Ab Android 6.0 (API-Ebene 23), gewähren Benutzern Berechtigungen für Anwendungen, während die App ausgeführt wird, nicht, wenn sie die App installieren. Dieser Ansatz optimiert den App-Installationsprozess, da der Benutzer keine Berechtigungen erteilen muss, wenn er die App installiert oder aktualisiert.

Sie benötigen den Zugang Standort Erlaubnis und behandeln die Anfrage-Antwort bei app Laufzeit

+0

Lesen Sie den Beitrag. Ich beantrage zur Laufzeit und bearbeite die Antwort. Die Berechtigungen werden erteilt. Das Problem ist, dass ich eine Sicherheits-Exception bekomme, obwohl die Check-Berechtigung die gewährte Berechtigung zurückgibt. – Rarw