Программно изменить необходимые фоновые режимы - PullRequest
2 голосов
/ 26 декабря 2011

У меня есть приложение, которому нужны службы на основе местоположения в фоновом режиме.Поэтому в info.plist я установил фоновые режимы «Требуемые регистры для обновлений местоположения».и все работает нормально.

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

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

Ответы [ 2 ]

2 голосов
/ 26 декабря 2011

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

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

0 голосов
/ 26 декабря 2011

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

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

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

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

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

...