【问题标题】:gps returns one day ahead?GPS提前一天返回?
【发布时间】:2012-01-27 15:37:48
【问题描述】:

在我的 android 应用程序中,我读取 GPS 数据和 GPS 时间。出于某种原因,GPS 返回明天的日期。有人知道为什么吗?

我得到这样的数据:(总是很好)。 4.0.3 中的错误?!

position.GPSTime = new Date(loc.getTime());

编辑

我将所有时间都保持在 UTC。此应用程序已投入生产 1 年 - 我从 1 小时前开始显示结果,您可以看到它们是 UTC 时间。在设备报告的左侧时间和来自位置服务的右侧时间。我没有混淆任何东西,这些日期通常相隔 1-2 秒。

编辑 2

从我的手机调试器查看截图!! 2 分钟前拍摄(中部标准时间上午 10:10)

【问题讨论】:

  • @BicycleDude 查看我的其他编辑以及来自调试器的屏幕截图。 1 年就是这样 - 工作正常...
  • (EDIT OOPS) 好的,position.GPSTime 是错误的。现在我们需要确定它是 new Date(milliseconds) 还是 loc.getTime() 是错误的来源。我开始同意你的观点,这很可能是 Nexus S 的 4.0.3 问题。即查看 if (new Date(milliseconds)).getTime == milliseconds - 这将消除一个错误来源。然后我们要仔细检查 loc.getTime()。顺便说一句,澳大利亚是 1 月 28 日凌晨 3:32;)
  • 好吧,我会说如果它是new Date(milliseconds) - 那么这是一个主要问题。 location.GetTime() 在野外很少使用..
  • 在找到 Code Google 中提到的错误后,我删除了过时的 cmets 并在下面更正了我的答案。
  • 看起来它是芯片组固件影响的设备不仅仅是 4.0.3 :( 这很糟糕。我之前确实依赖过 DeviceTime 但这也是一个坏主意,因为我的用户也有平板电脑和那些不要与手机提供商的时间同步,所以时间可能会相差很多。我什至打算使用 GPS 时间来“验证”设备时间。真的......

标签: android gps


【解决方案1】:

这里我给出了上述问题的解决方案

Android : Samsung Galaxy Tabs and Android 2.2 Devices Showing GPS date 1 Day Advance from 1st jan 2012 简而言之,使用 NMEA Listener 作为替代方案

【讨论】:

  • 我的行为与运行 android 2.2 的三星 y 相同
【解决方案2】:

GPS 时间以Coordinated Universal Time 表示。参考时间是伦敦时间。您对本地时间感到困惑,因为您所在的时区比 UTC 时间晚 1 天。

经过大量的故障排除和研究,我发现了这篇代码谷歌文章Issue 23937: GPS Provider : android.location.Location.getTime() returns wrong UTC timestamp on 4.0.3 / Nexus S,它似乎描述了相同的症状。

【讨论】:

  • 你能指出这个特定的时区吗?我相信没有这样的时区;)
猜你喜欢
  • 2012-01-21
  • 2020-09-20
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2021-11-08
  • 1970-01-01
相关资源
最近更新 更多