6

我正在尝试在我的 requestLocationUpdates 中使用 GPS_PROVIDER 在位置侦听器上使用 location.getTime 获取位置的 GPS 时间。我期望提供的时间是 GPS 时钟的时间 - 精确到十亿分之一秒,但四舍五入到毫秒。我得到的取决于平台,但肯定不是我所期望的。
在 SGS 11 - Android 2.3.3 上,返回值始终为精确秒,毫秒部分始终为 0.000。根据我使用 GPS 的经验,在我看来,GPS 的每次轮询都不太可能恰好在整个第二个时间间隔内发生。
在 HTC-A7275 Android 2.3.3 上 - 我正在获取手机的系统时间,当然不是 GPS 时间。
我通过弄乱手机的时间并检查位置时间来确认这些发现。
SGS 11 上 NMEA 语句中的时间戳提供为 3 位小数秒,但在 HTC 上,它们都是 xxx.0。使用 NMEA 的问题在于,从 MNEA 获取日期和时间以及完整位置真的很麻烦:只有在 GPGGA 句子中才有高度,但它没有日期戳,所以在 UTC 午夜前后变得很棘手。
我正在寻找精确的时间——最好是我的曲目记录器的毫秒级,这样我就可以可靠地比较来自不同玩家的曲目。有没有人在这方面做更多的工作?

4

1 回答 1

1

昂贵的 GPS 单元使用“每秒脉冲”协议来实现亚毫秒级的精度,但是我还没有听说过这种协议或接口可用于我们手机中的廉价 GPS 接收器。因此,您可以通过 GPS 消息实现的最佳精度在 1-2 秒范围内。

Re:NTP 在 Android 上,它是更好的解决方案,但不太可能在当代无线网络上实现超过 50-100 毫秒的时钟精度。

于 2012-04-22T10:44:43.333 回答