проверьте, разрешает ли пользователь приложению использовать его местоположение

В первый раз, когда приложение пытается определить местоположение пользователей, им предлагается «Хотелось бы использовать ваше текущее местоположение», и они могут нажать «Не разрешать» или «ОК». Есть ли способ узнать, нажал ли пользователь ОК или не разрешить? Я пытаюсь сделать так, чтобы MKMapView отображал текущее местоположение пользователей, но я хотел бы предпринять различные действия в зависимости от выбора пользователей.

Обычно вы думаете, что для получения этой информации должен быть делегат, но, похоже, его нет.

Заранее спасибо за помощь.


person jmurphy    schedule 15.12.2009    source источник


Ответы (1)


Ваш первый вызов для получения местоположения пользователя завершится ошибкой с сообщением о том, что пользователь отказал в услугах определения местоположения. Ваш CLLocationManagerDelegate метод didFailWithError будет вызван, как показано ниже. (Константы определены в CLError.h)

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError
{
    switch([anError code])
    {
    case kCLErrorLocationUnknown: // location is currently unknown, but CL will keep trying
    break;

    case kCLErrorDenied: // CL access has been denied (eg, user declined location use)
    message = @"Sorry, flook has to know your location in order to work. You'll be able to see some cards but not find them nearby";
    break;

    case kCLErrorNetwork: // general, network-related error
    message = @"Flook can't find you - please check your network connection or that you are not in airplane mode";
    }
}
person Jane Sales    schedule 17.12.2009
comment
Это не похоже на startMonitoringSignificantLocationChanges - person Brad Thomas; 14.02.2014