У меня есть приложение с явным взаимодействием с пользователем, которое использует текущее местоположение пользователя. Если пользователь отказывает в доступе к службам определения местоположения, я по-прежнему хотел бы, чтобы последующее использование предлагало пользователю перейти к настройкам и повторно включить службы определения местоположения для моего приложения.
Мне нужно поведение встроенного приложения Карт:
- Сброс предупреждений о местоположении в меню «Настройки»> «Основные»> «Сброс»> «Сброс предупреждений о местоположении».
- Запустите приложение Карт.
- Нажмите кнопку «Текущее местоположение» в левом нижнем углу.
- Запросы карт с «« Карты »хотели бы использовать ваше текущее местоположение» | "Не разрешать" | "Разрешить".
- Выберите опцию «Не разрешать».
- Снова нажмите кнопку «Текущее местоположение» в левом нижнем углу.
- Карты запрашивают «Включить службы определения местоположения, чтобы разрешить« Карточкам »определять ваше местоположение» | «Настройки» | "Отменить".
В моем собственном приложении тот же основной поток приводит к тому, что мой CLLocationManagerDelegate -locationManager: didFailWithError: метод, вызываемый с ошибкой kCLErrorDenied на последнем этапе, и пользователю не предоставляется возможность открыть приложение «Настройки» для его исправления.
Я мог бы отобразить свое собственное предупреждение в ответ на ошибку, но у него не было бы возможности запустить приложение «Настройки», как предупреждение, которое ОС может выдавать при использовании встроенного приложения «Карты».
Есть ли в классе CLLocationManager что-то, чего мне не хватает, что могло бы дать мне такое поведение?