Интервал обновления GPS быстрее с хорошим сигналом?
-
28-09-2019 - |
Вопрос
Я пытаюсь ограничить мою программу, чтобы принять обновления местоположения каждые 10 секунд вместо постоянных обновлений, чтобы уменьшить слив аккумулятора. Это работает нормально, когда я отладку в помещении, и сигнал слабый (т. Е. Значок GPS вспыхивает), но если телефон получает правильное исправление (т. Е. Значок GPS - это статический), интервал обновления увеличивается до примерно второго.
Я знаю, что код mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, updateInterval*1000, 0, this);
Не заставит GPS принимать обновления точно в данном интервале, но, на мой взгляд, он не должен зависеть от силы сигнала и сильно колебаться.
Любые идеи?
Обновление: см. Комментарий
Решение
Я подозреваю, что GPS Radio работает таким образом, когда он подключен к спутникам GPS или это не так. Когда он подключен, Android SDK отправляет вам обновления так часто, как они доступны из оборудования GPS. Когда у него нет полного соединения GPS, он возвращается к отправке обновлений AGPS в соответствии с тем, что вы запросили.
Если вы хотите только обновить каждые 10 секунд, вы должны сохранить последний полученный Location
значение времени в вашем слушателе, и когда вы получите новый Location
Проверьте свое время против старого значения; Игнорируйте его, если он слишком часто (или сделать что-то умнее, как проверять точность и замена старого значения и т. Д.).
Другие советы
Может быть, это работает медленнее, потому что вы отладки, но не потому, что ваш сигнал слаб! Попробуйте сделать тесты с отключенным отладчиком в помещении ...