С CLLocationManager я могу использовать следующий код, чтобы определить, могу ли я получить доступ к службам определения местоположения на устройстве. Это основная настройка для всех приложений, которую можно включать и выключать.
if (self.locationManager.locationServicesEnabled) {
[self.locationManager startUpdatingLocation];
}
Но пользователь может отказать в доступе к отдельному приложению, и чтобы не выполнять код для использования диспетчера местоположений, мне нужно знать, одобрил ли пользователь доступ к службам определения местоположения для этого конкретного приложения. Я видел, что в какой-то момент было свойство с именем locationServicesApproved, которое, по-видимому, будет указывать, одобрил ли пользователь доступ к службам определения местоположения в этом приложении. Но он был удален в 2008 году.
Источник: http://trailsinthesand.com/apple-removes-notifications-from-iphone-sdk-beta-4/
Похоже, что нет способа определить, одобрил ли пользователь доступ к службам определения местоположения, но это, похоже, большая дыра в SDK.
Эта функция в SDK где-либо еще? Что можно сделать, чтобы определить, разрешил ли пользователь доступ к службам определения местоположения для текущего приложения?