2010-11-22 10 views
16

Momentan fragt meine Anwendung nur einmal um Erlaubnis, den aktuellen Standort zu verwenden. Wenn der Benutzer dies nicht zulässt, wird er nicht erneut gefragt, es sei denn, er setzt die Standortwarnung in den allgemeinen Einstellungen zurück. Ich möchte dem Nutzer innerhalb der App eine Chance geben, diese Erlaubnis später zu erteilen. Mit anderen Worten, der Dialog sollte erneut erscheinen, wenn er eine bestimmte Taste drückt. Ist das möglich?CLLocation erneut nach Erlaubnis fragen

Vielen Dank für Ihren Rat.

+0

Wahrscheinlich nicht. Das ist der Punkt, an dem die Standortwarnungen zurückgesetzt werden müssen. – ryyst

Antwort

9

Neue Antwort: Jetzt in iOS 8 Sie können programmatisch die Geräteeinstellungen App öffnen:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
[[UIApplication sharedApplication] openURL:url]; 

Wenn Sie früher iOS-Versionen zu unterstützen und wollen sicherstellen, dass diese behandelt werden können, dies tun:

Alte Antwort: Es gibt keine Möglichkeit, das native Popup zu erzwingen (und den Benutzer auf die Einstellungsseite zu springen).

können Sie die folgende Methode verwenden, um festzustellen, ob der Benutzer die Ortungsdienste für die App erlaubt hat: CLLocationManager:

+(CLAuthorizationStatus)authorizationStatus 

Sie können auch, wenn die Ortungsdienste global erfahren Sie sind auf der Geräteebene aktiviert oder nicht auch: CLLocationManager:

+(BOOL)locationServicesEnabled 
+0

Dies ist nur teilweise genau. locationServicesEnabled informiert Sie nur über die Geräteeinstellung und nicht über die Standortberechtigungen Ihrer App. – Acey

14

[CLLocationManager locationServicesEnabled] sagt Ihnen, nur wenn die Standorte Dienste auf dem Gerät aktivieren sind.

nach this Dokument.

[CLLocationManager authorizationStatus]

wird wieder eine dieser

typedef enum { 
    kCLAuthorizationStatusNotDetermined = 0, 
    kCLAuthorizationStatusRestricted, 
    kCLAuthorizationStatusDenied, 
    kCLAuthorizationStatusAuthorized 
} CLAuthorizationStatus; 

wenn das Ergebnis kCLAuthorizationStatusDenied ist Ihr dem Benutzer sagen könnte die Nutzung der Ortungsdienste zu ermöglichen, von ihm dem settings.app

Senden
Verwandte Themen