在 Android 开发(最新 SDK)中,我使用GpsStatus.NmeaListener
来解析 NMEA 消息以进行时间同步。
在 onNmeaReceived(long timestamp, String nmea)
回调中,我解析 GPRMC 消息的 nmea 字符串。然后我计算系统时钟和从 GPRMC 消息解析的时间之间的偏移量。
现在,在 Android Frame 工作中收到 NMEA 消息的时刻与处理回调之间存在延迟。这会导致我正在计算的实际偏移量发生变化。
我的猜测是,timestamp
沿着 NMEA 消息发送的是收到 NMEA 消息那一刻的系统时钟时间。如果这是真的,我可以使用这个时间戳来补偿回调处理中的延迟。
根据我的测量,timestamp
时间与回调中捕获的系统时钟时间onNmeaReceived
有大约 10 ~ 30 毫秒的差异。
时间和从解析的 GPRMC 消息导出的时间之间的时间差/偏移量timestamp
为 7200092 毫秒(GPS 和系统时间之间的时间差为 2 小时)。
因此,我会说这timestamp
不是基于 GPS 的时间,而是收到消息时的系统时钟时间。
我已经在网上搜索了很多,但似乎找不到有关此时间戳的任何信息。有没有人有资源可以告诉我们更多关于这个时间戳的信息?这个时间戳到底代表什么?它是在什么时间记录的?