2017-02-22 32 views
0

Я пытаюсь использовать значительное изменение местоположения, когда приложение полностью закрыто, но оно не дает желаемых результатов.iOS Значительное обнаружение изменения местоположения при закрытии приложения

Мое приложение должно обнаружить, когда поездка начинается автомобилем. Для этого я регистрируюсь для значительного отслеживания изменений местоположения, поэтому приложение должно запускаться iOS после значительных изменений.

На симуляторе я имитирую движение по шоссе, и все работает отлично. Однако на реальных устройствах приложение запускается после перемещения на 5-10 км с очень высокой скоростью.

Я нашел в других приложениях, которые преуспевают в этом, поэтому мне интересно, какая часть моей реализации неверна.

Я включил режим фонового изображения на информационной панели. Это код, который я использую для запуска значительных обновлений местоположения:

self.significantLocationManager = [[CLLocationManager alloc] init]; 
self.significantLocationManager.delegate = self; 
if ([self.significantLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) { 
    self.significantLocationManager.allowsBackgroundLocationUpdates = YES; 
} 
[self.significantLocationManager startMonitoringSignificantLocationChanges]; 

EDIT: Я уже просил и дал мое приложение разрешения на «Всегда» использование служб определения местоположения. Приложение уже использует местоположение на переднем плане, в фоновом режиме и при завершении (но для запуска из прекращенного состояния требуется много времени).

ответ

1

Вы должны спросить Всегда разрешение на запуск приложения в фоновом режиме. Приложение пробудится, если значительное место будет изменено, даже если ваше приложение будет убито. К тому времени вы не можете изменить какой-либо компонент пользовательского интерфейса (т. Е. Изменить текст ярлыка и т. Д.). Кроме этого ваш код верен.

+0

Это уже тот случай. Я обновил вопрос. Благодарю. –