периодически отправлять обновления местоположения с помощью fusedLocation API

Программирование для Android - это совершенно новая вещь для меня, я играл с местоположением Android, и у меня та же проблема, я собираюсь отправлять периодические обновления местоположения на сервер в фоновом режиме, и я использую подход AlarmManager/LocationManager, установить alarmManager с определенным интервалом, то при срабатывании alarmReceiver он получит текущее местоположение устройства (используя locationManager) и отправит его на сервер с помощью метода onReceive. я обнаружил, что FusedLocation является отличной заменой, так как LocationManager дает мне дополнительную работу, чтобы получить лучшего поставщика местоположения. Можно ли периодически выполнять отправку обновлений местоположения в фоновом режиме с помощью API fusedLocation без alarmManager? если да, то как я могу это сделать? заранее спасибо!


person animo53    schedule 27.04.2015    source источник


Ответы (1)


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

Между этими двумя крайностями находится очень распространенный вариант использования, когда приложения определенно хотят получать обновления с заданным интервалом и могут получать их быстрее, когда они доступны, но при этом требуют низкого энергопотребления. Эти приложения должны учитывать PRIORITY_BALANCED_POWER_ACCURACY в сочетании с более быстрый setFastestInterval(long) (например, 1 минута) и более медленное setInterval(long) (например, 60 минут). Им будет назначена ответственность за мощность только в течение интервала, установленного setInterval(long), но по-прежнему может получать сведения о местоположении, активируемом другими приложениями, со скоростью до setFastestInterval(long). Этот стиль запроса подходит для многих приложений, учитывающих местоположение, включая использование в фоновом режиме. Не забудьте также ограничить setFastestInterval( long), если вы выполняете тяжелую работу после получения обновления, например, используете сеть.

Это позволяет гарантировать, что вы будете получать обновления местоположения в зависимости от интервала, установленного с помощью setInterval(long), что дает вам поведение, эквивалентное периодическому будильнику, но если другие приложения запрашивают информацию о местоположении, вы можете получать информацию о местоположении так часто, как ваш setFastestInterval(long) — вы можете установить ваш самый быстрый интервал к вашему интервалу, если вы просто хотите обновлять местоположение с заданным интервалом.

person ianhanniballake    schedule 27.04.2015
comment
отличный! спасибо, нашел полезную статью здесь zionsoft.net/2014/ 11/google-play-services-locations-2 - person animo53; 28.04.2015