Android 跨多个设备同步时间戳
我正在尝试同步多个Android设备之间的时间戳,以便可以同时启动一项任务。我想我可以基于System.currentTimeMillis()使用和设置日期,但问题似乎是多个设备的时间戳彼此之间的距离太远,无法达到我想要的精度 如果可能的话,我在50-100毫秒的范围内寻找。我的一个想法是使用Android Beam将一个设备的时间戳发送到另一个设备,然后计算一个增量,但事实证明,我必须在消息实际发送和接收之前获得时间戳(即,用户等待发送的时间越长,增量越大),这使得该方案完全崩溃 如何同步两个或多个设备,使其内部时钟彼此之间的间隔不超过100毫秒?如果不使用保持时间的外部服务器,这是可能的吗Android 跨多个设备同步时间戳,android,Android,我正在尝试同步多个Android设备之间的时间戳,以便可以同时启动一项任务。我想我可以基于System.currentTimeMillis()使用和设置日期,但问题似乎是多个设备的时间戳彼此之间的距离太远,无法达到我想要的精度 如果可能的话,我在50-100毫秒的范围内寻找。我的一个想法是使用Android Beam将一个设备的时间戳发送到另一个设备,然后计算一个增量,但事实证明,我必须在消息实际发送和接收之前获得时间戳(即,用户等待发送的时间越长,增量越大),这使得该方案完全崩溃 如何同步两个
对于尽可能接近同时在多台设备上进行操作的技术,我们也欢迎提出任何其他建议。为什么不使用GPS时间?GPS上的时间标签相当准确
您可以在某个特定时间对所有设备达成一致意见,然后在GPS通知您时启动。我现在正为同一问题而挣扎。我尝试了gps时间,但我不能保证用户在室内会有gps信号 我的解决方案是让所有设备从nist服务器检索时间,然后用System.currentTimeMillis()添加或减去时间差 如果设备是根设备,您可以尝试同步时钟
基本上,你有两种选择:简单的方法还是艰难的方法 简单的方法是使用单个外部时间信号源,如另一个互联网源,或@Stefan建议的GPS。互联网资源使用NTP,请参见此问题
困难的方法是在设备之间进行 Android GPS硬件通常只有秒精度。毫秒浮点数的最后三个时间戳数字是000。我尝试使用GPS位置。我能够得到它并设置增量,虽然我还没有停止同步,但我不知道这是否可行。在我的实际测试中,我有时不得不等待一分钟以上的GPS信号。更不用说,这将是该应用程序所需的又一个权限。现在我将继续使用GPS时间方法,看看是否能制定出一个有效的同步方案,但我不知道从长远来看使用GPS是否可靠。