简短版本:
问题:我需要几个Android设备在同一时间(约100毫秒)内执行某些操作。例如,我希望所有设备在以前确定的时间点播放一定的声音。
问题:我可以使用GPS时间来确保设备时钟的同步吗?
更长版本:
有几个拥有Android设备的人在同一个室外位置(对于某些特定的体育赛事)。所有设备应在同一时间发出特定事件。 (什么时候会在手之前确定,只要他们在同一时间做到这一点,那么他们在那个时候完成并不重要)。 FWIW:这些事件将帮助人们同时开始体育活动。
这里是我可以做的假设:
>可能有也可能没有细胞覆盖。 (在户外,可能远在市区)
>设备可能连接到互联网,也可能不会连接到互联网。 (有些人可能没有数据计划)
>设备可以相互通信。如果设备没有连接到互联网,他们将通过wifi连接(尽管wifi可能没有互联网网关)。
>设备在外面(而不是建筑物内部)。 (这很好,这意味着所有的设备都可以获得GPS定位)
这些设备在物理上彼此靠近(即在300平方米内)。 (不确定是否重要)
我无法使用内部时钟来知道何时播放事件:用户可以手动更改时间,即使设备设置为从蜂窝网络获取时间,该网络可能无法提供确切的正确时间。两个设备可能被预订到不同的网络,因此它们的时间可能不会被非常好的同步。
在应用程序启动时,每个设备都可以要求GPS定位并保存GPS时间与其内部时钟之间的差异。现在,主人可以根据这个GPS时间来宣布事件(通过使用它的内部时钟并减去之前保存的偏移量)。
这是否足够精确和可靠?
提前谢谢了,
安德烈亚斯·莱特纳