Службы определения местоположения включены для конкретного приложения? - PullRequest
3 голосов
/ 20 октября 2010

Есть ли способ определить, были ли отключены службы определения местоположения для определенного приложения? Проблема в том, что [CLLocationManager locationServicesEnabled] возвращает YES, даже если службы определения местоположения были отключены для определенного приложения ...

Ответы [ 2 ]

10 голосов
/ 25 марта 2011

Если вы ориентируетесь на iOS 4.2 и выше, просто используйте [CLLocationManager authorizationStatus]

. Она вернет одно из следующих значений CLAuthorizationStatus, которые в основном являются целыми числами:

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

Поиск документов для "CLLocationManager" для получения дополнительной информации.

5 голосов
/ 20 октября 2010

Когда вы реализуете делегат для менеджера местоположений, вы должны реализовывать didFailWithError. Там вы получите соответствующую ошибку, если пользователь не разрешил доступ к местоположению

Состояния документации Apple: Если пользователь отрицает использование вашим приложением службы определения местоположения, этот метод сообщает об ошибке kCLErrorDenied. Получив такую ​​ошибку, вы должны остановить службу определения местоположения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...