Der Test locationServicesEnabled wird bestanden, wenn er in viewDidLoad deaktiviert wird

8

Ich habe die Standortdienste für meine Anwendung im Einstellungsbereich deaktiviert. Ich führe einen Test in ViewDidLoad in meinem View-Controller aus, um zu sehen, ob sie aktiviert sind:

%Vor%

Dieser Test besteht immer aus irgendeinem Grund. Wenn ich versuche, auf Lokalisierungsdienste zuzugreifen, erhalte ich einen kCLErrorDenied-Fehler für den Standortmanager. Was gibt?

Benutze ich den falschen Test?

    
Adam 04.08.2010, 00:29
quelle

2 Antworten

25

Die Klassenmethode locationServicesEnabled testet nur die globale Einstellung für Standortdienste. AFAIK, es gibt keine Möglichkeit zu testen, ob deine App explizit abgelehnt wurde. Sie müssen darauf warten, dass die Standortanforderung fehlschlägt, und mithilfe der CLLocationManagerDelegate-Methode locationManager: didFailWithError: alles tun, was Sie benötigen. Zum Beispiel:

%Vor%

Siehe die Dokumentation zu den CLError-Konstanten in der CLLocationManager-Klassenreferenz für mehr Optionen.

    
Dan 10.08.2010, 16:36
quelle
20

Mit iOS 4.2 kann nun festgestellt werden, ob Standortdienste über die Methode CLlocationManager +authorizationStatus abgelehnt wurden.

    
GBegen 03.02.2011 21:04
quelle

Tags und Links