Location Manager Entfernt die Aktualisierungsberechtigung

8

Ich benutze Android Studio und CompileSdkVersion ist 23 In diesem verwende ich unter Code

%Vor%

zum Stoppen der GPS-Aktualisierung, wobei der GPS-Listener eine Klasse ist, die LocationListener implementiert.

aber in der Zeile updateUpdates erhalte ich die Warnmeldung fusseln

  

Aufruf erfordert eine Berechtigung, die vom Benutzer abgelehnt werden kann: Code sollte   Überprüfen Sie explizit, ob die Berechtigung verfügbar ist (mit    checkPermission ) oder behandeln ein potenzielles SecurityException

Ich verstehe nicht, was das Problem im obigen Code ist. Jede zusätzliche Berechtigung muss in der Manifestdatei hinzugefügt werden?.

Grüße.

    
Madhukar Hebbar 22.09.2015, 11:03
quelle

4 Antworten

26

Seit SDK 23 sollten / müssen Sie die Berechtigung prüfen, bevor Sie die Standort-API-Funktionalität aufrufen. Hier ist ein Beispiel, wie es geht:

%Vor%

Es gibt checkSelfPermission() , was zu überprüfen ist, ob 'Sie' (diese App) die richtigen Berechtigungen hat. Es gibt auch checkPermission() , was zu prüfen ist, ob ein anderer Prozess die richtigen Berechtigungen hat.

Hinweise

  • Neben dieser Laufzeitprüfung müssen auch die entsprechenden Berechtigungen im AndroidManifest erforderlich sein.
  • wenn Ihr ZielSk ist & lt; 23, sollten Sie stattdessen ContextCompat.checkSelfPermission() (dank JerryBrady)
  • verwenden
Tim Castelijns 22.09.2015, 11:10
quelle
14

Ich konnte checkSelfPermission() nicht verwenden, weil meine min API 14 und 23 ist. Wenn Sie das wissen, können Sie auch try bis catch a SecurityException .

verwenden

Beispiel:

%Vor%     
Rodrigo Borba 29.10.2015 18:21
quelle
5

Um zu Jerry Bradys Kommentar bezüglich ContextCompat hinzuzufügen, ist dies der vollständige Code für & lt; 23:

%Vor%     
Wouter de Jong 14.11.2015 21:22
quelle
-1

Hier ist meine Lösung!

%Vor%     
Regis_AG 19.01.2017 17:46
quelle

Tags und Links