对于工业流程应用程序,我们需要让服务器启动制造 Activity ,该 Activity 通过 Android 设备上的应用程序发出命令来停止或完成。发生这种情况时,应用程序会向服务器发送一条消息,其中包含完成时间。
为此,如果 Android 设备上的时间与服务器上的时间“相同”,那么从服务器的角度来看,设备向服务器发送的时间是正确的。 (一两秒的网络延迟并不重要)
需要澄清的是 - 我们公司的许多客户都是国防承包商或其他具有安全意识的公司,因此我们的设备通常无法访问外部网络,因此 NITZ 或 NTP 选项可能不可用。我们所说的“服务器”只是一台控制一些工业机械的普通 PC,并通过本地无线接入点通过 WiFi 与 Android 进行通信。
几年前(例如 How to set time to device programmatically ),有人指出非 root 无法以编程方式设置系统时间。在更高版本的 Android 中(我们运行的是 5.1),情况仍然如此吗?有没有办法只为我们的应用程序设置时间?还有其他方法可以实现我们想要的吗?
最佳答案
我假设这是一个封闭的系统,并且您没有在随机或不受信任的设备上安装此应用程序(如果是,我建议根本不要根据客户端执行任何操作)。在这种情况下,您可以在应用程序中存储存储的时间增量(服务器与应用程序之间的时间差),而不是设置系统时间(您不能这样做)。然后将其添加到发送到服务器的所有时间。
关于android - 以编程方式将我的设备或应用程序的时间与服务器同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078496/