java - 同步两台 Android 平板电脑

标签 java android network-programming

我正在尝试在两台采用 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 毫秒)

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

谢谢

最佳答案

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

关于java - 同步两台 Android 平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10552439/

相关文章:

android - 如何知道依赖项来自哪个远程存储库?

networking - 识别慢启动阶段的结束

c# - Apple 的 Windows 版 Bonjour SDK

sockets - 在什么情况下 getpeername 返回 IP :PORT 0. 0.0.0:0

java - 在 ListView 中使用 XML 布局扩展自定义 View

android - 在 Canvas 上绘制位图/图像,用户在屏幕上触摸

java - 浏览器不显示 java applet

android - 无法在模拟器上的/storage/emulated/0 上创建目录

Java 泛型 - 接受 float 和 int

java - 不使用 Observable.create() 时如何查看订阅状态?