2012-04-22 74 views
5

我想要获取位置使用location.getTime位置监听器在我的requestLocationUpdates使用GPS_PROVIDER位置的GPS时间。我期待提供的时间是GPS时钟的精确时间 - 精确到十亿分之一秒,但四舍五入到毫秒。我得到的东西取决于平台,但当然似乎并不是我期望的。
在SGS 11 - Android 2.3.3上,返回的值始终是精确的秒,毫秒部分总是.000。根据我对GPS的经验,在我看来,GPS的每次轮询都不会发生在整个第二个时间间隔内。
在HTC-A7275 Android 2.3.3上 - 我得到手机的系统时间,当然不是GPS时间。
我通过弄乱手机的时间和检查位置时间来确认这些发现。
SGS 11上的NMEA句子中的时间戳记提供给一秒3位小数,但在HTC上它们都是xxx.0。使用NMEA的问题是,从MNEA获取日期和时间以及完整位置非常麻烦:只有在GPGGA句子中有高度,但没有日期戳记,因此在午夜UTC附近会变得棘手。
我正在寻找精确的时间 - 最好是我的轨迹记录器的毫秒数,以便我可以可靠地比较来自不同玩家的轨迹。 有没有人对此做过更多的工作?
如何从Android的GPS位置获得准确的时间戳

回答

1

昂贵的GPS装置使用“脉冲每秒”协议来实现亚毫秒级的精度,但是我还没有听说过我们手机中廉价的GPS接收器上可用的协议或接口。因此,使用GPS信息所能达到的最佳精度在1-2秒范围内。

回复:Android上的NTP,它是更好的解决方案,但在当代无线网络上不可能达到超过50-100ms的时钟精度。

+0

我遇到了与GPS时间相同的问题。在我得到第一个修复程序后,计时如下:1379708393916,1379708394803,1379708395803等等,直到时间开始四舍五入到第二个 - 1379708405000,1379708406000,1379708407000。不知道为什么?有谁知道这是为什么?我曾尝试使用有源天线和无源天线。 – Sarvavyapi 2013-09-20 20:30:02