Wie kann ich überprüfen, ob der Benutzer den Standort für mu app zugelassen hat? Normalerweise würde ich verwenden authorizationStatus
Methode der CLLocationManager
Klasse, aber sie ist nur in iOS 4.2 und neuer verfügbar. Ist es möglich, dies irgendwie zu erreichen, während immer noch mit SDK 4.2, so dass die App noch auf Geräten mit älteren Versionen von iOS laufen kann, oder muss ich das SDK downgraden? Und in diesem Zusammenhang benötige ich eine ähnliche Alternative für die locationServicesEnabled
Methode vor iOS 4.0.
Antworten
Zu viele Anzeigen?
EasyCoder
Punkte
523
Im folgenden Code habe ich zwei Techniken kombiniert
MKUserLocation *userLocation = map.userLocation;
BOOL locationAllowed = [CLLocationManager locationServicesEnabled];
BOOL locationAvailable = userLocation.location!=nil;
if (locationAllowed==NO) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled"
message:@"To re-enable, please go to Settings and turn on Location Service for this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
} else {
if (locationAvailable==NO)
[self.map.userLocation addObserver:self forKeyPath:@"location" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];
}
donkim
Punkte
13124
Hmm Ich habe nicht daran gedacht, die authorizationStatus
o locationServicesEnabled
. Ich habe Folgendes getan:
MKUserLocation *userLocation = mapView.userLocation;
if (!userLocation.location) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled"
message:@"To re-enable, please go to Settings and turn on Location Service for this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
return;
}
Ich bin froh, dass es eine bessere Methode zur Überprüfung gibt, aber ich hatte bisher keine Probleme mit der Art und Weise, wie ich feststelle, ob meine App das GPS verwenden darf.
Ich hoffe, das hilft!