getLastKnownLocation()Android,当最后一个已知位置更新?

时间:2011-05-10 20:48:55

标签: android location

  

getBestKnownLocation返回一个Location,指示从给定提供程序获取的上次已知位置修复的数据。这可以在不启动提供程序的情况下完成。请注意,此位置可能已过期,例如,如果设备已关闭并移至其他位置。

在Android中更新了最后一个已知位置?是否有应用程序正在侦听位置提供程序时更新,如果是,如果没有应用程序要求该位置然后您要求LastKnownLocation()会怎样?

2 个答案:

答案 0 :(得分:5)

我认为当手机中的某些程序使用此函数requestLocationUpdates时,LastKnownLocation()正在更新。

答案 1 :(得分:5)

请参阅Start location strategy

我做了一些调查:我打开GPS并等待修复。然后我关掉GPS并开了50公里(31英里)。然后我使用A Deep Dive Into Location中的代码来获取所有getLastKnownLocation。我尝试了两次,首先关闭GPS,然后打开GPS,但没有修复:

1)关闭了GPS我得到了 - 提供商:网络,正确的位置,准确度为680米 - 提供者:被动(mProvider =网络),与上述相同的位置,同时如上 - 提供者:gps,location null

所以我了解到,当关闭gps时,你不会从GPS位置提供者那里获得getLastKnownLocation。

2)我打开了GPS - 提供商:网络,正确的位置,准确度652米 - 提供者:被动(mProvider =网络),与上述相同的位置,同时如上 - 提供者:gps,位置早于2小时,准确度为12米,时间也提前2小时

在这里,我了解到旧消息没有失效,即使它们显然是错误的。

总而言之:当提供者处于活动状态时,它会通过getLastKnownLocation存储最后收到的可以转发的位置。如果提供程序已停用,则您甚至不会获得getLastKnownLocation。请注意,我使用GPS-Provider对此进行了测试,其他提供商可能会以不同的方式做出反应。