CLLocationManager geo-fencing / startMonitoringForRegion: против startMonitoringForSignificantLocationChanges: против 10-минутных вызовов startUpdating

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

Я много читал, и я не нашел много информации об этих методах. Я'пройдусь по плюсам и минусам как я их понимаю прямо сейчас

startMonitoringForSignificantChanges

Описание: на основе изменений Wi-Fi и сотовой вышки система запускает приложение.

Docs:

Приложения могут ожидать уведомления, как только устройство переместится на 500 метров или более от предыдущего уведомления. Не следует ожидать уведомлений чаще, чем раз в пять минут. Если устройство способно извлекать данные из сети, менеджер местоположения с гораздо большей вероятностью будет своевременно доставлять уведомления.

Плюсы:

Наиболее эффективный аккумулятор

Минусы:

Зависит от изменений Wi-Fi / сотовой вышкиМожно только предположить, что это будет называться каждые 200 м до 2 км (если не больше в определенных областях)Подробнее о точностиТаким образом, противоречивый и неточный

10-минутное стартовое обновление или же "n-минутное обновление ":

Описание: в основном, приложение запрашивает больше времени, когда истекает это дополнительное время, оно вызывает [self.locationManager startUpdating], захватывает местоположение и продлевает фоновый поток еще на 10 минут.

Плюсы:

последовательныйМожет быть настолько точным, насколько вы хотите, чтобы быть настолько последовательным, насколько вы хотите

Минусы:

Должен делать вызов каждые десять минут или меньше, чтобы приложение работало в фоновом режиме (т.е.не более 10 для звонков)

Вопросы: Как это влияет на батарею? Неужели пробуждение GPS и его выключение больше вредят батарее? Я не могне представляю, что при краткой проверке местоположения в фоновом режиме батарея будет сильно разряжаться ... но опять же, я неНе знаю, что входит в питание GPS и получение полезного сигнала.

startMonitoringForRegion (гео-фехтование):

Проще говоря, ваше приложение просыпается, когда вы входите в заранее определенный регион. Это странный из них, он более свежий, и документации на него меньше. Я могу'найти хорошее описание того, какСистемные мониторы » пересечение границы. Насколько я знаю, это какой-то действительно умный алгоритм, или они постоянно проверяют GPS, что сделает его менее эффективным, чем другие методы для этого.

Плюсы:

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

Минусы:

Люди ставят под сомнение его эффективностьОгромные противоречия относительно того, хорошо ли это для времени автономной работы или если он истощает срок службы батареи ужасно.Как система отслеживает это?В основном, неопределенное поведение.

Я предполагаю, что мой вопрос сводится к тому, как startMonitoringForRegion: сравнить с этими другими методами тестирования местоположения пользователя в фоновом режиме, когда речь идет о сроке службы батареи, согласованности и точности. Кто-нибудь тщательно это проверил? Или использовал его в своем приложении и получил хоть какой-то отзыв? Вероятно, для моих целей компромисс между гео-фехтованием и 10-минутным методом обновления. (Также, учитывая то, что Apple публично сказала об iOS7, будут некоторые фоновые задачи ... изменит ли это исчисление для компромисса между этими двумя методами?) Кто-нибудь имеет представление о том, как эти два сравниваются?

Спасибо! Будем рады узнать, сможем ли мы докопаться до того, как сравнить эти методы.

Ответы на вопрос(1)

Ваш ответ на вопрос