可以使用 Android 的 FusedLocationApi 获取新数据(确切的当前位置)吗?

Posted

技术标签:

【中文标题】可以使用 Android 的 FusedLocationApi 获取新数据(确切的当前位置)吗?【英文标题】:Possible to get fresh data (exact current location) using Android's FusedLocationApi? 【发布时间】:2015-10-30 09:18:21 【问题描述】:

假设我使用 FusedLocationApi 的 requestLocationUpdates 间隔为 5 分钟,所以我将有一个不会超过 5 分钟的缓存位置数据。

但是,例如,当用户按下按钮时,我想获取当前位置而不是要使用的缓存位置。我该怎么做?

问题 1:有没有办法强制触发位置更新,所以我可以获得新的位置数据,而不是 5 分钟前的数据?

问题 2:FusedLocationApi 有一个 getLastLocation 函数,我认为它也可能会提前 5 分钟。由于没有 getCurrentLocation 函数,我们如何实现这一点?

【问题讨论】:

【参考方案1】:

当然可以。

因此,为了开始 5 分钟的间隔更新,您可以:

使用 LocationListener 的实例

发出一个PendingIntent

使用 FusedLocationProvider API 中的 requestLocationUpdates() 方法。

您在问题中要求的此策略将返回“最新鲜”的位置。

您是对的,getLastKnownLocation() 仅在系统具有缓存位置时才有效。因此,要获取最新位置,请结束您最初请求的更新,然后以相同的间隔重新请求更新。

【讨论】:

获取最新位置的唯一方法是结束位置更新并重新启动?好吧,如果这是我想我别无选择的唯一方法..但希望有一种更简单的方法。即使是 html5 地理位置也有“getCurrentLocation”,它与“watchPosition”并排工作,类似于 requestLocationUpdates。 :(

以上是关于可以使用 Android 的 FusedLocationApi 获取新数据(确切的当前位置)吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 Android 表单中为 android 组件使用 CSS 吗?

使用android自带的日历控件怎么标记

我可以在 sencha 应用程序(Android)中使用 android AsyncTask

是否可以将使用 ASE 创建的 Android 脚本用作 Android 的典型应用程序(例如用 Java 编写)?

可以使用现有布局创建新的 Android 活动吗?

如何在 android 应用程序中使用 OSM 地图。?有啥教程可以学习在android中使用OSM吗?