2

我正在尝试在两台带有 Android 操作系统的华硕平板电脑之间同步操作。

我目前正在使用这个算法来做到这一点:

客户端平板电脑发送它的日历时间,如下所示:

Calendar cal = Calendar.getInstance();
cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSSS");

connectionTablet.SendMessage( sdf.format(cal.getTime()) );

服务器平板电脑收到它:

Log.d( "NETWORK", "msg" );

msg 是从客户端发送的 cal.getTime,因此当我调试服务器平板电脑时,我可以在 logcat 中看到接收和打印此消息的时间。

两种平板电脑都使用自动日期和时间(使用网络提供的时间)。

我的问题是,由于平板电脑从同一个地方获取时间信息,我知道它们在分钟和秒方面具有相同的时间,但我可以假设它们的时间在毫秒方面也是同步的吗?

例子:

平板电脑 1:09:34:07.699 平板电脑 2:09:34:07.699(± 5 毫秒)

那么我可以假设这个假设在任何时间点都有效吗?

谢谢

4

1 回答 1

3

不,因为每个设备都有自己的内部时钟,并且这些时钟可能不会以完全相同的速度运行,这就是为什么设备会不时与网络时间源同步,但“中间”时间来自内部时钟可能会在某个时间点关闭。这是假设网络同步完美无缺

于 2012-05-11T14:13:00.627 回答