Android LocationManager.getLastKnownLocation()

时间:2013-02-25 00:21:02

标签: android

来自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);

2 个答案:

答案 0 :(得分:1)

  

提供商更新设备位置的频率如何?它是如何工作的?

这取决于你,你可能永远不会知道。如果设备具有良好的接收效果,则有关用户位置的更新将会快速启动。

  

我可以这样做吗?

不是真的。如果那太快发射,那么你将无法获得任何位置。如果用户没有很好的接收,那么可能需要10秒才能合理地了解用户的位置。我认为你必须稍微改变一下。我担心我必须推荐locationListeners:P

答案 1 :(得分:1)

如果您绝对不能等待某个位置,可以尝试getLastKnownLocation(),但您需要准备好NULL结果。

getLastKnownLocation()只是您指定的提供商的最后一个位置的缓存。在某些情况下,根本不会有一个,比如电话重新启动时。即使存在缓存位置,也可能不准确。