2011-12-26 2 views
2

У меня есть приложение, которому нужны службы на основе местоположения в фоновом режиме. Итак, в info.plist я установил правильные фоновые режимы в «Регистры приложений для обновлений местоположения». и все работает нормально.С программным изменением Необходимые фоновые режимы

Мой вопрос в том, как я могу отключить его в фоновом режиме? Можно ли добавить опцию и позволить пользователям установить ее вкл/выкл?

Как я знаю, info.plist не может быть изменен программно так как я могу это сделать?

ответ

2

Ключ к описанию - он поддерживает регистрацию обновлений местоположения. Таким образом, все, что вам нужно сделать, это указать менеджеру вашего местоположения прекратить обновление, когда приложение переходит в фоновый режим (или раньше), и затем он не должен использовать обновления местоположения в фоновом режиме.

Невозможно переопределить возможности info.plist приложения во время выполнения.

+0

спасибо, я решаю проблему – icefox

0

Традиционно (и прагматично) вы настроили своего менеджера местоположений на -startUpdatingLocation, пока ваше приложение будет использовать. Это сильно разрядит вашу батарею, если вы оставите ее полностью работоспособной. Обычно вы вызываете это, получаете необходимую информацию или обновляете информацию, вызываете -stopUpdatingLocation. Это ставит все на отдых, больше не разряжается аккумулятор.

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

Вы другой вариант фона -startMonitoringRegion. Это позволяет создавать окружную область вокруг мест и получать уведомления, когда вы -enterRegion или -exitRegion. Все они должны быть настроены перед входом в фоновый режим. У них есть дополнительное преимущество в улучшении местоположения. Изменение WiFi, переключение каналов сотовой связи и даже другие приложения с использованием обновлений местоположения. ОС захватывает все обновления местоположений и сворачивает их вниз и делает их доступными для любых регионов, зарегистрированных в ОС.

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

Удачи. Существует множество примеров того, как достичь всего этого на SO и в Интернете. Трюк заключается в поиске правильной комбинации, которая будет работать для вас. Удачи.

+0

спасибо, за то, что срок службы батареи, и даже пользователь закрыл приложение, значок gps все еще там. поэтому я хочу дать вариант, который может использовать, это gps, который работает в фоновом режиме. – icefox

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