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

Posted

技术标签:

【中文标题】getLastKnownLocation() Android,最后一个已知位置何时更新?【英文标题】:getLastKnownLocation() Android, when the Last Known Location is updated? 【发布时间】:2011-08-22 19:31:32 【问题描述】:

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

android 中的最后一个已知位置何时更新?如果有应用程序正在侦听位置提供程序,它是否会更新,如果是这样,如果没有应用程序请求位置然后您请求 LastKnownLocation() 怎么办?

【问题讨论】:

你想达到什么目的?请格式化问题 我想看看 getLastKnownLocation 是否可靠(何时更新?)以获取用户位置。 【参考方案1】:

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

【讨论】:

根据我的观察,我认为您是正确的。我注意到,当我的应用程序进行网络调用时,我检查了最后一次知道,它只是在几秒钟前更新。【参考方案2】:

请看Start location strategy

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

1) 在 GPS 关闭的情况下,我得到了 - 提供者:网络,正确的位置,精度为 680m - 提供者:被动(mProvider=network),位置同上,时间同上 - 提供者:gps,位置 null

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

2) 打开 GPS 我得到了 - 提供者:网络,正确的位置,精度为 652m - 提供者:被动(mProvider=network),位置同上,时间同上 - 提供者:gps,位置早 2 小时,精度 12 m,时间也早 2 小时

在这里我了解到旧消息不会失效,即使它们很明显是错误的。

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

【讨论】:

以上是关于getLastKnownLocation() Android,最后一个已知位置何时更新?的主要内容,如果未能解决你的问题,请参考以下文章

调用 getLastKnownLocation 时出现 SecurityException

getLastKnownLocation null - 如何获取数据?

getLastKnownLocation() 返回 null [关闭]

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

getLastKnownLocation 返回 NULL

LocationManager.getLastKnownLocation() 返回 null,并且永远不会调用 onLocationChanged