Получать местоположение Android GPS каждые несколько минут - PullRequest
6 голосов
/ 23 августа 2010

Я хотел бы написать приложение на Android, чтобы загружать свое местоположение GPS на внешний веб-сайт каждые 5 минут.Это должно как можно меньше влиять на срок службы батареи, но также должно работать без какого-либо взаимодействия с пользователем.(Справочная информация: я участвую в соревнованиях по триатлону Ironman, на выполнение которых у меня уходит около 14 часов, и я хочу транслировать свое местоположение практически в режиме реального времени, но мне не нужно беспокоиться о том, чтобы возиться с моим телефоном.)

Итак, моя первоначальная мысль состоит в том, чтобы написать Сервис, который использует LocationManager.requestLocationUpdates () с minTime 5 минут, но будет ли это фактически разбудить устройство каждые 5 минут, чтобы мой сервис выполнял свою работу?

ЭтоПохоже, мне также нужно было бы использовать AlarmManager.setInexactRepeating (), чтобы убедиться, что мой сервис активен, пока он выполняет свою задачу, но как это работает с requestLocationUpdates ()?Должен ли я вместо этого установить minTime = 0 для requestLocationUpdates (), но затем вернуться в спящий режим, как только будет получено следующее обновление?

Любые общие рекомендации о том, как спроектировать это, очень приветствуются.Я компетентный Java-программист и буду использовать Карты Google на сервере для составления своего местоположения, но я довольно новичок в разработке под Android, поэтому я в основном ищу план высокого уровня по разработке клиентского приложения.

1 Ответ

1 голос
/ 23 августа 2010

Ваш сервис должен быть активен все время, когда вы хотите получать обновления.

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.location.LocationListener%29

Вы можете узнать, как часто вы хотите получать информацию об изменении местоположения с помощью параметра minTime. Это, однако, не уменьшает потребление батареи. GPS включен, если вы не используете метод removeUpdates независимо от того, как часто вы хотите получать обновления.

Вы можете использовать другой подход: включить GPS, используя метод, описанный выше, прочитать одно значение, использовать метод removeUpdates, подождать 5 минут и снова. Задержка между включением и получением местоположения может составлять от нескольких секунд до нескольких минут.

...