假设我正在使用FusedLocationApi的requestLocationUpdates,间隔为5分钟,因此我将获得一个不会超过5分钟的缓存位置数据。
然而,当用户按下按钮时,我想获取当前位置而不是要使用的缓存位置。我怎么能这样做?
问题1:有没有办法强制触发位置更新,因此我可以获取新的位置数据而不是可能的5分钟旧数据?
问题2:FusedLocationApi有一个getLastLocation函数,我认为它也可能有5分钟的时间...因为没有getCurrentLocation函数,我们怎么能实现这个呢?
答案 0 :(得分:0)
当然可以这样做。
因此,为了开始5分钟的间隔更新,您可以:
使用 LocationListener
的实例或强>
发出 PendingIntent
使用FusedLocationProvider API中的requestLocationUpdates()方法。
您在问题中提出的此策略将返回“最新鲜”的位置。
您是对的,getLastKnownLocation()仅在系统具有缓存位置时才有效。因此,要获取最新位置,请结束最初请求的更新,然后以相同的间隔重新请求更新。