来自android文档LocationManager.getLastKnownLocation():
返回指示上一个已知位置的数据的位置 从给定的提供者处获得的修复。
Note that this location could be out-of-date, for example if the device was turned off and moved to another location.
提供商更新设备位置的频率如何?它是如何工作的?
我问的原因是我不想使用locationListener, 我只需要在按钮点击时获得当前的地理位置,就是这样。 我可以这样做吗?
final LocationManager mlocManager = (LocationManager) getActivity()
.getSystemService(Context.LOCATION_SERVICE);
final Location currentGeoLocation = mlocManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
答案 0 :(得分:1)
提供商更新设备位置的频率如何?它是如何工作的?
这取决于你,你可能永远不会知道。如果设备具有良好的接收效果,则有关用户位置的更新将会快速启动。
我可以这样做吗?
不是真的。如果那太快发射,那么你将无法获得任何位置。如果用户没有很好的接收,那么可能需要10秒才能合理地了解用户的位置。我认为你必须稍微改变一下。我担心我必须推荐locationListeners:P
答案 1 :(得分:1)
如果您绝对不能等待某个位置,可以尝试getLastKnownLocation()
,但您需要准备好NULL
结果。
getLastKnownLocation()
只是您指定的提供商的最后一个位置的缓存。在某些情况下,根本不会有一个,比如电话重新启动时。即使存在缓存位置,也可能不准确。