как получить местоположение с CLLocationManager каждые 10 секунд? - PullRequest
0 голосов
/ 24 июня 2019

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

Сначала я подумал о том, чтобы не реализовывать 10-секундный интервал и получать местоположение пользователя каждый раз, когда он перемещается с didUpdateLocations из CLLocationManager, но когда я моделирую диск, я получаю новое местоположение каждую секунду, и я думаю, что это действительно плохо для батареи, я прав?

Ответы [ 2 ]

3 голосов
/ 24 июня 2019

Не пытайтесь угадать менеджера локаций. Ваша задача - правильно настроить его свойства, такие как distanceFilter, desiredAccuracy и activityType. Apple будет использовать все приемы в книге, чтобы сохранить разумное использование батареи с учетом ваших настроек . Как говорят вам документы:

Базовое расположение агрессивно управляет питанием, отключая оборудование, когда оно не нужно. Например, установка требуемой точности для событий местоположения в один километр дает менеджеру местоположения возможность отключать оборудование GPS и полагаться исключительно на WiFi или сотовые радиостанции, что может привести к значительной экономии энергии.

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

0 голосов
/ 24 июня 2019

Регулярно проверяйте местоположение каждые 10 секунд, это слишком быстро разряжает батарею пользователя.
Если вы хотите сэкономить батарею, вам следует изучить руководство Apple по диспетчеру местоположений.
Вам нужно использовать distanceFilter и desiredAccuracy

Базовое руководство CLLocationManager

Руководство по энергоэффективности для приложений iOS

Руководство по программированию осведомленности о местоположении - Советыдля экономии заряда батареи

Обновление
Также вы можете проверить, насколько быстро пользователь перемещается CLLocation имеет скорость и регулирует activityType

...