Запрос местоположения iPhone в фоновом режиме?

Простой вопрос ... У меня есть приложение, которое записывает местоположение пользователей с 30-секундными интервалами (используя NSTimer), оно отлично работает, пока приложение не станет "неактивным" и NStimer не остановится. Как следствие, я ищу варианты для поддержания интервала моего местоположения (30 секунд), в то же время сохраняя возможность записывать довольно точные данные о местоположении (с точностью до 100 м).

  • Option_001, грубая сила: Пусть CLLocationManager, startUpdatingLocation запускает все время, используя UIBackgroundModes = "location". Не рекомендуется, разряжает аккумулятор. Регулярность по запросу, точность прибл. 10-65м. Возможно, это единственный реальный вариант.

  • Option_002, SLC: Я мог бы использовать значительное изменение местоположения, но частота обновлений местоположения довольно низкая (не говоря уже о точности). Это особенно верно, если приложение работает в сельской местности или в глуши с ограниченным количеством вышек сотовой связи. Регулярность неизвестна, точность прибл. 500 м

  • Option_003, гибрид: Я мог бы использовать значительное изменение местоположения (SLC) в фоновом режиме в качестве индикатора «значительного» движения, а затем запросить местоположение GPS на основе kCLLocationAccuracyBest. Это сработает, но события SLC не будут приходить с интервалом около 30 секунд (особенно при ходьбе). Регулярность неизвестна, точность прибл. 10-50 м.

  • Option_004, Что-то еще? любые идеи будут очень признательны.


ПРИМЕЧАНИЕ: Я думал, что это работает, потому что когда вы нажимаете [LOCK] на iPhone (подключенном через USB ) applicationWillResignActive, но NSTimers не останавливаются. Если вы попробуете сделать то же самое с неподключенным iPhone (т. Е. При обычном использовании телефона), NSTimers остановятся почти сразу после вызова applicationWillResignActive.

13
задан fuzzygoat 28 April 2011 в 08:11
поделиться