Мы разрабатываем приложение, которое интенсивно использует 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-координаты на сервер.
Любая помощь будет принята с благодарностью
Спасибо!