Comment vérifier si les services de localisation sont activés pour une application en particulier avant l'iOS 4.2?
Comment puis-je vérifier si l'utilisateur a autorisé l'emplacement pour mu application?
Normalement, je voudrais utiliser authorizationStatus
méthode de la CLLocationManager
classe, mais il est uniquement disponible dans iOS 4.2 et versions plus récentes. Est-il possible de réaliser cela en quelque sorte, tout en utilisant le SDK 4.2, de sorte que l'application peut encore fonctionner sur des appareils avec les anciennes versions d'iOS, ou dois-je faire un downgrade du SDK?
Et le long de la même ligne, j'ai besoin d'une alternative similaire pour le locationServicesEnabled
méthode avant l'iOS 4.0.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous appelez
-startUpdatingLocation
, si les services de localisation ont été rejetées par l'utilisateur, l'emplacement du gestionnaire délégué recevra un appel à-locationManager:didFailWithError:
avec lekCLErrorDenied
code d'erreur. Cela fonctionne à la fois dans toutes les versions d'iOS.[CLLocationManager locationServicesEnabled]
comme décrit ci-dessous en mieux. De cette façon, vous pouvez éviter les appels inutiles.[CLLocationManager locationServicesEnabled]
juste des tests pour l'appareil à l'échelle des services de localisation.[CLLocationManager authorizationStatus]
tests pour l'application de l'autorisation spécifique.kCLAuthorizationStatusDenied
J'ai combiné deux techniques dans le code ci-dessous
Hmm.. je n'ai pas pensé à utiliser
authorizationStatus
oulocationServicesEnabled
. Ce que j'ai fait est le suivant:Je suis heureux de voir qu'il y a une meilleure méthode pour vérifier, mais je n'ai pas eu de problèmes avec la façon dont j'détecter si mon application est autorisée à utiliser le GPS.
Espérons que cette aide!