Вопрос

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

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

Это было полезно?

Решение

Новый ответ: теперь в 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
}

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

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

+(CLAuthorizationStatus)authorizationStatus

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

+(BOOL)locationServicesEnabled

Другие советы

[CLLocationManager locationServicesEnabled] Просто говорит вам, если на устройстве включены услуги.

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

[CLLocationManager authorizationStatus]

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

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

Если результат kCLAuthorizationStatusDenied Вы можете сказать пользователю разрешить использование услуг местоположения, отправив его к настройкам .App

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top