ОБЪЕДИНЕНИЕ запросить разрешение

В настоящее время мое приложение запрашивает разрешение на использование текущего местоположения только один раз. Если пользователь не разрешает, он не будет спрашивать снова, пока он не сбросит предупреждение о местоположении в общих настройках. Я хотел бы дать пользователю возможность из приложения предоставить это разрешение позже. Другими словами, диалог должен появиться снова, если он нажмет определенную кнопку. Это возможно?

Спасибо за совет.

2 ответа

Решение

Новый ответ: теперь в iOS 8 вы можете программно открыть приложение настроек устройства:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];

Если вы поддерживаете более ранние версии iOS и хотите убедиться, что это может быть обработано, сделайте следующее:

if (&UIApplicationOpenSettingsURLString != NULL) {
   NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
   [[UIApplication sharedApplication] openURL:url];
}
else {
  //Earlier iOS version
}

Старый ответ: я не знаю, как заставить родное всплывающее окно появиться (и позволить пользователю перейти на страницу настроек).

Вы можете использовать следующий метод, чтобы определить, разрешил ли пользователь службы определения местоположения для вашего приложения: CLLocationManager:

+(CLAuthorizationStatus)authorizationStatus

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

+(BOOL)locationServicesEnabled

[CLLocationManager locationServicesEnabled] просто сообщает вам, включены ли службы определения местоположения на устройстве.

согласно этому документу.

[CLLocationManager authorizationStatus]

вернет один из них

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

если результат kCLAuthorizationStatusDenied Вы можете указать пользователю разрешить использование служб определения местоположения, отправив его в settings.app

Другие вопросы по тегам