android - 以编程方式将我的设备或应用程序的时间与服务器同步?

标签 android

对于工业流程应用程序,我们需要让服务器启动制造 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/

相关文章:

Android:如何按字符换行? (不是靠文字)

android - 如何将 float 操作按钮对齐到中心

android - Jetpack Compose 无法编译应用程序,找不到 kotlin-compiler

java - 由于整数赋值导致的 Android 迭代错误

android - TextView 和背景颜色

java - 在 Android 上实现类似 Instagram 的应用内导航系统

android - 如何在 Activity 开始时停止 AlarmManager

java - Android - 从网络下载图像,保存到应用程序私有(private)位置的内部存储器,显示列表项

android - 使用 robospice-retrofit 和 getstream.io 时没有这样的方法错误

java - Facebook android sdk 需要 java 1.7 才能工作吗?