同步Android和PC的系统时钟

use*_*149 2 android synchronization tcp

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

sok*_*kie 5

不幸的是你不能从代码中改变你的Android手机的时间,因为你没有设置android.permission.SET_TIME的权限.你只能在root手机上做到这一点.

那么为什么不让你的两个应用程序从可靠的来源更新,如互联网时间.也许使用android sntp客户端

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

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

  • 太棒了.感谢sokie,现在它的作品!! 问题是Sntpclient类在主线程上进行联网,所以我得到了异常,因为我有android 4.0.3.我已经更改了类并将时间请求抛出UDP套接字放在一个单独的线程中以获得异常的红色! (2认同)