Стандартная смена батареи службы обслуживания на iOS

Я заметил, что если у меня есть приложение с использованием существенного изменения местоположения, это занимает приблизительно 30% от моей батареи до 24 часов. Я думал, что SLC не должен разряжать батарею.

Это нормальное поведение? Мы сделали наши тесты с научной точки зрения на iPhone 6 с iOS 8.3 и 8.4. Мы также опробовали iPhone 5c (iOS 8.3 и 8.4).

Ответ 1

В CLLocationManager есть несколько вариантов, и вы должны использовать их разумно или вы увидите непредвиденный отвод батареи.

1, когда вы вызываете метод startMonitoringSignificantLocationChanges, убедитесь, что вы еще не вызвали startUpdatingLocation, иначе убедитесь, что вы остановили его с помощью stopUpdatingLocation, прежде чем использовать значительное расстояние.

2- Проверяйте свои настройки для pausesAutomatically и разрешайте отложенные обновления. Это существенно повлияет на ситуацию.

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

4- Вы также должны проверить, какая логика вы выполняете при получении обновления местоположения. Уведомления, которые включают экран и сетевые вызовы, которые могут развернуть Wi-Fi и услугу сотовой связи, значительно увеличит количество разряда батареи на вашем устройстве, чем менеджер местоположения.

Вы также можете проверить https://LocationKit.io для коко-порта, предназначенного для оптимизации служб определения местоположения для высокой точности и низкой мощности. Полное раскрытие информации Я работаю в компании, которая делает LocationKit.