gpt4 book ai didi

android - 为什么 locationmanager 使用新的 gettime-timestamp 返回旧位置修复?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:51 24 4
gpt4 key购买 nike

我们有一个应用程序,可以根据用户操作尝试获取位置修复。它同时在 GPS 和网络上监听,并有一个基于时间/准确性的决策矩阵来确定何时停止监听以及返回什么修复。

我们有时会注意到一种非常奇怪的行为。我们使用经典方法查看修复的时间,如下所示:

long age = now - newLocation.getTime();
if(age >= prefs.getLocationMaxAge()){
Log.d(TAG, "location too old.");
return;
}

但有时,根据返回的时间戳,从操作系统返回的 location.getTime 可能有 15-20 秒的时间,尽管我们可以肯定地说它很旧。例如,如果经度/纬度定位来自手机 30 分钟前所在的位置!

它似乎同时来自 Wi-Fi 和网络,但不是 GPS。对我来说,这完全是疯了。有没有其他人看到过这个,有什么解决办法吗?

我们已经在几个不同的手机上安装了它,最近的一个是 Samsung Galaxy S II .

非常欢迎提供帮助。

编辑:要真正清楚,问题是“onlocationchanged”回调被操作系统调用,其时间戳年龄可能为几秒的位置,当我确定"new"修复中的经度/纬度是手机至少 30 分钟未使用过的地方。

这使得准确确定手机的位置变得有些困难......

最佳答案

It seems to happen both from Wi-Fi and network, but not GPS

这似乎很公平,因为在 Wi-Fi 和基于网络基站的三角测量中,准确性非常差。他们可能正在使用可追溯到 30 分钟前的缓存位置。除非你没有改变你的手机站点或搬到另一栋楼,所以新的 APs可以被发现,恐怕你只会得到缓存的位置。如果您想要新位置,请使用 GPS 提供商。

关于android - 为什么 locationmanager 使用新的 gettime-timestamp 返回旧位置修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com