Как получить координаты GPS каждую минуту в Android? - PullRequest
3 голосов
/ 04 января 2011

Я хочу получать свои координаты каждую минуту, даже если пользователь не двигается. Поэтому я использовал requestLocationUpdates со следующими параметрами:

  locMgr.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER,
                    60000,      // minTime in ms
                    0,      // minDistance in meters
                    PosljiLokacijo.this);

Но когда я тестирую его на своем HTC Hero (2.1 Android) и не двигаюсь, onLocationChanged () никогда не вызывается. Если я изменяю minDistance на 1, то при запуске я получаю несколько обновлений, но после этого они приходят через очень нерегулярные интервалы.

Как мне выбрать эти 2 параметра (minTime и minDistance), чтобы получать координаты каждую минуту?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Я не думаю, что «minTime» или «minDistance» помогут в этом случае, если только: сохранить последнее местоположение в переменные и выводить их каждую минуту.Позвольте locationManager перезаписать эти переменные, чтобы через минуту изменение местоположения стало видимым.Таким образом, не нужно ждать обновления, так как ваши переменные всегда сохраняют фактическую позицию.

Вы также можете получить местоположение из locationManager и запросить местоположение снова через одну минуту (или как хотитеинтервал) без использования requestLocationUpdates.

например, взгляните на Timer, чтобы установить повторный вызов вашего метода, который получает местоположение:http://developer.android.com/reference/java/util/Timer.html

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

1 голос
/ 04 января 2011

Согласно документации:

minTime минимальный интервал времени для уведомлений в миллисекундах. Это поле используется только как подсказка для экономии энергии, и фактическое время между обновлениями местоположения может быть больше или меньше этого значения.

Единственный способ сделать то, что вы хотите, - установить minTime в 0 и выбросить слишком частые значения. Вам по-прежнему не гарантируется, что вы будете получать обновления так часто, как хотели бы, и были бы готовы к тому, что ваше приложение также может быть убийцей батареи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...