Всплывающее окно CCLocationManager

У меня есть кнопка найти меня в моем приложении. Поведение, когда пользователь нажимает кнопку, довольно прямолинейно. Если службы определения местоположения отключены, я показываю пользователю предупреждение об этом, в противном случае начинается обновление местоположения.

Чтобы проверить, включены ли/отключены службы определения местоположения, я запускаю CLLocationManager, и если я получаю код ошибки kCLErrorDenied в

- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error

Я показываю UIAlertView, что служба определения местоположения отключена.

Это работает хорошо, но проблема возникает, когда я запускаю CLLocationManager в первый раз (или пользователь сбрасывает настройки своих служб местоположения). В этой ситуации система показывает предупреждение, которое спрашивает пользователя, согласен ли он с тем, что приложение будет использовать службы определения местоположения, и если пользователь не разрешает использовать службы определения местоположения, я немедленно получаю сообщение об ошибке.

- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error

и должно отображать предупреждение второго приложения о том, что службы определения местоположения отключены для приложения, но это не очень умно, потому что пользователь отключил его всего секунду назад.

Итак, вопрос заключается в том, как узнать, что оповещение системных служб определения местоположения было на экране, а пользователь отключил службы определения местоположения секунду назад, чтобы не отображать второе предупреждение?


person Dmytro    schedule 05.05.2011    source источник