Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
Java 在2部手机中同步系统时间_Java_Android_Time_Synchronization - Fatal编程技术网

Java 在2部手机中同步系统时间

Java 在2部手机中同步系统时间,java,android,time,synchronization,Java,Android,Time,Synchronization,我正在做一个研究项目,两部android手机必须在完全相同的时间播放相同的声音文件,要做到这一点,我需要将每部手机的系统时间同步到毫秒。 我的问题是,如何在代码级别实现这一点?目前所有的方法只能进行二级同步 你没有。如果你需要的话,你需要一个实时操作系统,而Android不是。太多的事情会使它出错-时钟偏移、垃圾收集、dalvik JIT差异等。您可以使用实时时钟功能接近它,但是,在多任务操作系统上,在VM之上编写的任何东西都无法保证这样的性能。我敢肯定,即使您使用NTP或其他方法同步了时间,你

我正在做一个研究项目,两部android手机必须在完全相同的时间播放相同的声音文件,要做到这一点,我需要将每部手机的系统时间同步到毫秒。
我的问题是,如何在代码级别实现这一点?目前所有的方法只能进行二级同步

你没有。如果你需要的话,你需要一个实时操作系统,而Android不是。太多的事情会使它出错-时钟偏移、垃圾收集、dalvik JIT差异等。您可以使用实时时钟功能接近它,但是,在多任务操作系统上,在VM之上编写的任何东西都无法保证这样的性能。

我敢肯定,即使您使用NTP或其他方法同步了时间,你将很难在VM中以精确的毫秒运行代码。所谓VM,我指的是android用来执行Java代码的Dalvik虚拟机,而不是android仿真器。可能是重复的谢谢,还有其他方法吗?我目前的想法是,首先同步系统时间,然后通过套接字向这两部手机发送消息,我在套接字中指定声音文件的播放时间。@JunfeiWang您可以让两部设备在套接字上监听消息。然后通过多播从同一网络上的第三台机器发送消息。根据网络流量情况,两人应大致同时接收信息(距离足够近,可以同步播放声音,让人的耳朵不会注意到差异)。@FoamyGuy谢谢你的建议,我将尝试建立一个专用wifi网络并实现这一点。