3

我有一个通过 TCP 套接字发送到另一部 Android 手机或 PC 的 Android 应用程序,我想同步发送方和接收方时钟的时钟。我已经在 android 上尝试过 SystemClock.setCurrentTimeMillis,但即使使用权限 android.permission.SET_TIME 也无法正常工作。还有其他方法吗?

4

2 回答 2

5

不幸的是,您无法通过代码更改您的 android 手机的时间,因为您没有设置 android.permission.SET_TIME 的权限。您只能在有根手机上执行此操作。

那么,为什么不让您的两个应用程序从受信任的来源(如internet time )更新。也许使用android sntp 客户端

 //Sample usage:
 SntpClient client = new SntpClient();
 if (client.requestTime("time.nist.gov")) {
    long now = client.getNtpTime() + SystemClock.elapsedRealtime() -    client.getNtpTimeReference();
  }

或者你可以做的是:通过你用来接收数据的程序将你手机上的当前时间发送到电脑并设置你电脑的时间。也看看这里:设置移动时间和日期

于 2012-10-10T13:53:23.763 回答
1

我不知道你的应用程序,但是,像这样同步时钟似乎有点小补丁。我建议您使用 NTP(网络时间协议)来这样做。Android 以及 Windows、MAC 和 Linux 机器都可以做到这一点。您的 android 机器将通过手机信号塔或 WIFI 执行此操作。我最近为 Android 移植了一个蜂窝调制解调器,我广泛查看了日志,我可以告诉你,时间同步经常发生,每次网络连接时,一天几次。即使在切换网络源(手机或wifi)时也非常准确。这很简单,您不必编写任何代码,只需对其进行配置即可启用它。

结果是从官方网络来源设置的PC和Android时间。

于 2012-10-10T14:06:28.850 回答