Warum fordert requestWhenInUseAuthorization den Benutzer nicht zum Zugriff auf den Speicherort auf?


74

In meiner viewDidLoadMethode habe ich

locationManager = [[CLLocationManager alloc]init]; // initializing locationManager
locationManager.delegate = self; // we set the delegate of locationManager to self.
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];


if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
    [locationManager requestWhenInUseAuthorization];
}

Und die Anfrage wird aufgerufen, aber der Benutzer wird nicht dazu aufgefordert? Warum?


Es wird auch nicht empfohlen, die Betriebssystemversion so zu überprüfen, wie Sie es tun. Besser zu bedienenif([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization:)])
Jai Govindani

Antworten:


281

Sie müssen wahrscheinlich Ihre plistDatei aktualisieren . Hier ist ein Tutorial, wie es geht , schnell und schmutzig:

Sie müssen Ihrer Info.plist-Datei einen der folgenden Schlüssel hinzufügen:

NSLocationWhenInUseUsageDescription

NSLocationAlwaysUsageDescription

Sie müssen auch eine Autorisierung für die entsprechende Standortmethode anfordern, WhenInUseoder Background. Verwenden Sie einen dieser Aufrufe:

[self.locationManager requestWhenInUseAuthorization]
[self.locationManager requestAlwaysAuthorization]

Es gibt auch einen Beitrag, den ich hilfreich fand:

Ortungsdienste funktionieren unter iOS 8 nicht

Diese Antwort beschreibt, wie Sie Ihre plistDatei aktualisieren :

Fügen Sie Ihrer info.plist eine der folgenden Zeilen hinzu

<key>NSLocationWhenInUseUsageDescription</key>
<string>The spirit of stack overflow is coders helping coders</string>

<key>NSLocationAlwaysUsageDescription</key>
<string>I have learned more on stack overflow than anything else</string>

Sie sollten wahrscheinlich die Zeichenfolgen des Wörterbucheintrags in der Datei info.plist anpassen und überprüfen, bevor Sie den Code versenden .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.