我正在制作一个获取用户位置的应用程序,为此我使用getLastKnownLocation,问题是,如果我将虚拟手机的位置改变到其他地方,getLastKnownLocation,仍然给出相同的位置,只有当我打开谷歌地图时才会更新.有什么办法可以获得设备的实际位置吗?
的行为。LocationManager.getLastKnownLocation
你所描述的正是这种方法的方法。确定的:
从给定提供者处获取最后已知的位置,如果没有最后已知的位置,则为空。在某些情况下,返回的位置可能很旧,因此应始终检查该位置的年龄。 这将永远不会激活传感器来计算新的位置,只会返回一个缓存的位置。
因此,如果使用任何其他应用程序请求实际位置(如谷歌地图),缓存值会被刷新,您可以通过 getLastKnownLocation
.
如果你想主动检索一个新的位置,你应该使用 getCurrentLocation
或继续使用 getLastKnownLocation
但在调用它之前,会强制更新位置。requestSingleUpdate