0

Предположим, что я использую запрос FusedLocationApiLocationUpdates с интервалом в 5 минут, поэтому у меня будут данные кэшированного местоположения, которые не будут намного старше 5 минут.Возможно получить свежие данные (точное текущее местоположение) с помощью Android FusedLocationApi?

Однако, когда пользователь нажимает кнопку, например, я хотел бы получить текущую позицию вместо кэшированной, которая будет использоваться. Как я могу это сделать?

Вопрос 1: Есть ли способ принудительно активировать обновление местоположения, поэтому я могу получить новые данные о местоположении вместо потенциально 5-минутных данных?

Вопрос 2: FusedLocationApi имеет функцию getLastLocation, которая, как я думаю, будет потенциально 5-минутной тоже .. поскольку функция getCurrentLocation отсутствует, как мы можем достичь этого?

ответ

0

Уверенный, вы можете это сделать.

Так что для того, чтобы начать обновления интервал 5 минутные вы либо:

Используйте экземпляр LocationListener

ИЛИ

Выдать PendingIntent

С метод requestLocationUpdates(), найденный в API FusedLocationProvider.

Эта стратегия по вашему запросу в вопросе вернет «самое свежее» место.

Вы правы, getLastKnownLocation() работает только в том случае, если система имеет кэшированное местоположение. Итак, чтобы получить самое текущее местоположение, завершите первоначальные запросы, а затем повторно запросите обновления с одинаковыми интервалами.

+0

Единственный способ получить самое текущее местоположение - это завершить обновление местоположения и снова перезапустить? Ну, если это единственный способ, я думаю, у меня нет выбора. Но какая-то надежда есть более простой способ. Даже геолокация HTML5 имеет «getCurrentLocation», работая бок о бок с «watchPosition», которая похожа на requestLocationUpdates. :( – Bruce

Смежные вопросы