我正在尝试使用我的requestLocationUpdates中使用GPS_PROVIDER的位置监听器上的location.getTime获取位置的GPS时间。我期待所提供的时间是从GPS时钟开始的时间 - 精确到十亿分之一秒,但是四舍五入到毫秒。我得到的东西取决于平台,但肯定似乎不是我所期待的
在SGS 11 - Android 2.3.3上,返回的值始终是精确的秒,毫秒部分始终为.000。根据我对GPS的经验,我似乎不太可能每次轮询GPS都会在整个第二段时间内完全发生
在HTC-A7275 Android 2.3.3上 - 我得到了手机的系统时间,当然不是GPS时间。
我通过弄乱手机的时间和检查位置时间来证实了这些发现
SGS 11上的NMEA句子中的时间戳提供给3秒的3位小数,但在HTC上,它们都是xxx.0。使用NMEA的问题在于,从MNEA获取日期和时间以及完整位置真的很麻烦:只有GPGGA句子中有高度,但它没有日期戳,所以它在UTC午夜左右变得棘手。
我正在寻找精确的时间 - 最好是我的轨道记录器的毫秒,这样我就可以可靠地比较来自不同玩家的曲目。
有没有人为此做过更多的工作?
答案 0 :(得分:1)
昂贵的GPS装置使用“每秒脉冲”协议来达到亚毫秒级的精度,但我还没有听说过我们手机中便宜的GPS接收器上提供的这种协议或接口。因此,GPS消息可以达到的最佳准确度在1-2秒范围内。
Re:Android上的NTP,它是更好的解决方案,但在当代无线网络上不太可能达到超过50-100ms的时钟精度。