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