Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 跨多个设备同步时间戳_Android - Fatal编程技术网

Android 跨多个设备同步时间戳

Android 跨多个设备同步时间戳,android,Android,我正在尝试同步多个Android设备之间的时间戳,以便可以同时启动一项任务。我想我可以基于System.currentTimeMillis()使用和设置日期,但问题似乎是多个设备的时间戳彼此之间的距离太远,无法达到我想要的精度 如果可能的话,我在50-100毫秒的范围内寻找。我的一个想法是使用Android Beam将一个设备的时间戳发送到另一个设备,然后计算一个增量,但事实证明,我必须在消息实际发送和接收之前获得时间戳(即,用户等待发送的时间越长,增量越大),这使得该方案完全崩溃 如何同步两个

我正在尝试同步多个Android设备之间的时间戳,以便可以同时启动一项任务。我想我可以基于System.currentTimeMillis()使用和设置日期,但问题似乎是多个设备的时间戳彼此之间的距离太远,无法达到我想要的精度

如果可能的话,我在50-100毫秒的范围内寻找。我的一个想法是使用Android Beam将一个设备的时间戳发送到另一个设备,然后计算一个增量,但事实证明,我必须在消息实际发送和接收之前获得时间戳(即,用户等待发送的时间越长,增量越大),这使得该方案完全崩溃

如何同步两个或多个设备,使其内部时钟彼此之间的间隔不超过100毫秒?如果不使用保持时间的外部服务器,这是可能的吗


对于尽可能接近同时在多台设备上进行操作的技术,我们也欢迎提出任何其他建议。

为什么不使用GPS时间?GPS上的时间标签相当准确


您可以在某个特定时间对所有设备达成一致意见,然后在GPS通知您时启动。

我现在正为同一问题而挣扎。我尝试了gps时间,但我不能保证用户在室内会有gps信号

我的解决方案是让所有设备从nist服务器检索时间,然后用System.currentTimeMillis()添加或减去时间差

如果设备是根设备,您可以尝试同步时钟


基本上,你有两种选择:简单的方法还是艰难的方法

简单的方法是使用单个外部时间信号源,如另一个互联网源,或@Stefan建议的GPS。互联网资源使用NTP,请参见此问题


困难的方法是在设备之间进行

Android GPS硬件通常只有秒精度。毫秒浮点数的最后三个时间戳数字是000。

我尝试使用GPS位置。我能够得到它并设置增量,虽然我还没有停止同步,但我不知道这是否可行。在我的实际测试中,我有时不得不等待一分钟以上的GPS信号。更不用说,这将是该应用程序所需的又一个权限。现在我将继续使用GPS时间方法,看看是否能制定出一个有效的同步方案,但我不知道从长远来看使用GPS是否可靠。