2014-09-24 4 views
2

Может ли быть, что для важных обновлений местоположения в IOS8 требуется вызвать «Запрос на авторизацию» в LocationManager? requestWhenInUseAuthorization кажется недостаточным при использовании SLC, даже если приложение работает только на переднем плане. I.e., didUpdateLocation никогда не вызывается. Не имеет никакого смысла для меня. Кто-нибудь еще испытал эту проблему?Значительные изменения местоположения в IOS8

Спасибо!

ответ

1

Необходимо обязательно запрашивать разрешение. Это находится в разделе Обсуждения под requestWhenInUseAuthorization, который говорит documented:

приложение не можешь использовать какие-либо услуги, которые автоматически перезапустить приложение, такие как мониторинг региона или службу изменения значительного местонахождения

Смысловые Место изменения может запустите приложение, когда оно не используется, что требует разрешения «Всегда».

+0

Спасибо, это то, что я думал, может быть, проблема. Но мне кажется, что это странный подход. Поскольку SLC - наиболее эффективный способ получить местоположение пользователя, но требует самого высокого уровня авторизации. Я думаю, что Apple стреляет себе в ногу с этим ограничением. – emillamm

+0

Вам не нужен SLC, если вы не хотите, чтобы приложение запускалось системой, когда пользователь не находится в приложении. Если вы просто контролируете местоположение во время работы приложения, вы можете непрерывно запускать CLLocationManager с требуемой точностью, установленной на 3000 м, чтобы получить те же самые дружественные батареи результаты. – progrmr

+0

Я сомневаюсь, что он будет дружественным к аккумулятору, потому что он активирует GPS, а не использует сотовые/Wi-Fi-сигналы. Поправьте меня если я ошибаюсь. – emillamm

Смежные вопросы