android - getLastKnownLocation 仅在位置变化 ~50 m 时更新。为什么?

标签 android gps locationmanager

在使用 LocationManagergetLastKnownLocation() 方法时,我注意到它获得的位置只有在我移动大约 50 m 时才会改变。

尽管 GPS 能见度很高,在我测试的区域定位误差应该在 5 米左右。我想知道 getLastKnownLocation() 中是否内置了任何“距离变化”约束,这样它只会在位置变化一定量时更新其保存的位置 [很像您可以放置​​距离约束在 requestLocationUpdates()] 上。

如果是这样,有谁知道那个距离限制到底是什么?

谢谢!

最佳答案

getLastKnownLocation() 方法只会返回最后一次 GPS 定位的位置 - 无论它是由您的应用程序还是第三方应用程序获得的。它不会返回您的当前位置,如果您移动大约 50 米也不会改变 - 至少在没有其他应用程序使用 GPS 的情况下不会改变。

在获得新数据之前,它应该用于提供用户的大概位置或作为“占位符”。

有关这方面的更多详细信息,请参阅此博客文章: http://android-developers.blogspot.com/2011/06/deep-dive-into-location.html

Android开发团队成员Reto Meier也给了a speech at Google I/O去年,他谈到了位置服务的使用,包括 getLastKnownLocation()

关于android - getLastKnownLocation 仅在位置变化 ~50 m 时更新。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947693/

相关文章:

android - android 多久请求一次位置更新?

java - 使用 "requesLocationUpdates()"时出现一些错误

java - 应用程序后台的 Android 位置监听器

android - 如果 gps 关闭, ionic 显示错误

android - .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

android - 在单独的类中使用 Google Play 位置 API?

android - 当其他 EditText 清除焦点时,阻止 EditText 获得焦点

android - 图片实际高度差

java - 使用 dex2jar 将 .dex 文件转换为 .jar 文件

java - 如何在没有任何点击的情况下立即显示对话框?