Мы разрабатываем приложение, которое интенсивно использует GPS, и мы не можем оптимизировать время автономной работы.
Даже когда устройство не перемещается, происходит значительный разряд батареи , чего, согласно коду, не должно происходить.
Вот код:
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = 100;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
В идеале мы хотим запускать GPS каждые 20 минут (если нет изменения местоположения, тогда экономия заряда батареи) ИЛИ каждые 5 минут, если есть изменение местоположения. По словам моего разработчика, это невозможно
Раньше мы использовали kCLLocationAccuracyBest
, который очень быстро расходовал батарею, а теперь мы используем kCLLocationAccuracyHundredMeters
.
startUpdatingLocation - получить координаты GPS. Существует еще один вызов startMonitoringSignificantLocationChanges, который должен получить координаты AGPS, которые, как я полагаю, возвращают координаты всякий раз, когда сотовая вышка изменяется, и, следовательно, очень быстро расходует батарею.
distanceFilter - Минимальное расстояние (измеряемое в метрах), на которое устройство должно переместиться вбок, прежде чем будет сгенерировано событие обновления. На основе фильтра расстояния мы получаем GPS-координаты от устройства, а затем отправляем обновленные GPS-координаты на сервер.
Мы будем благодарны за любую помощь Спасибо!