可以使用 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 吗?
我可以在 sencha 应用程序(Android)中使用 android AsyncTask