Использование определения местоположения на iPhone запускает "X хочет использовать ваше текущее местоположение" - "Не разрешать" / "ОК". В документации CLLocationManager указано:
"Пользователь имеет возможность запретить приложениям доступ к данным службы местоположения. Во время первоначального использования приложения базовая структура ядра предлагает пользователю подтвердить, что использование службы определения местоположения является приемлемым. Если пользователь отрицает запрос, объект CLLocationManager сообщает о соответствующей ошибке его делегату во время будущих запросов.
Я обнаружил, что "начальное использование" будет два раза, если вы нажмете "ОК", чтобы разрешить услуги определения местоположения. С третьего раза iPhone запомнит ваши настройки для всех будущих применений приложения.
Однако пользователь, нажимая "Не разрешать" , будет постоянно беспокоиться каждый раз, когда часть приложения пытается использовать службы определения местоположения. Я пробовал по крайней мере 15 раз в своем собственном приложении и добавил "Не разрешаю" еще больше в "Официальном мобильном зрительном руководстве Vancouver 2010". Это крайне раздражает пользователей, которые не хотят использовать эту функцию.
Мои вопросы:
- Для всех приложений iPhone попросит два раза и запомнит настройку, если вы нажмете "ОК". Правильное ли это наблюдение?
- Есть ли ограничение на количество попыток iPhone будет продолжать спрашивать, попадаете ли вы "Не разрешать" , или это никогда не помнится? Как вы справляетесь с этим? Поскольку locationManager: didFailWithError: уведомлен, я думаю, он может каждый раз увеличивать свойство счетчика и упорствовать в этом. При следующем использовании приложения этот параметр проверяется в моем собственном коде. Если counter >= 2, не используйте расположение ядра.
- Единственный способ, который я обнаружил, чтобы удалить параметр "ОК", как только его помнят, - это сбросить его для ВСЕХ приложений в целом → Reset → Предупреждения о местоположении. Есть ли способ сделать это только для одного приложения или из моего собственного кода?