我有一个Android应用程序通过TCP套接字发送到另一个Android手机或PC,我想同步发送器和接收器时钟的时钟。我已经在安卓系统上尝试过SystemClock.setCurrentTimeMillis,但即使使用permission android.permission.SET_TIME也不能正常工作。还有别的办法吗?
发布于 2012-10-10 21:53:24
不幸的是,你不能通过代码更改安卓手机的时间,因为你没有设置android.permission.SET_TIME.You的特权,只能在有根的手机上这样做。
那么为什么不让您的两个应用程序都从像internet time这样的可信来源进行更新呢?也许可以使用android sntp client
//Sample usage:
SntpClient client = new SntpClient();
if (client.requestTime("time.nist.gov")) {
long now = client.getNtpTime() + SystemClock.elapsedRealtime() - client.getNtpTimeReference();
}或者你可以做的是:将你手机上的当前时间发送到电脑上,并通过你用来接收数据的程序来设置电脑的时间。也可以在这里查看:set mobile time and date
发布于 2012-10-10 22:06:29
我不知道你的应用程序,但是,像这样同步时钟似乎是一个小补丁。我建议您使用NTP (网络时间协议)来完成此操作。Android以及Windows、MAC和Linux机器都可以做到这一点。你的安卓机器将在手机发射塔或WIFI上做到这一点。我最近为Android移植了一个手机调制解调器,我广泛地查看了日志,我可以告诉你,时间同步发生得非常频繁,每次网络连接时,一天几次。即使在切换网络源(手机或wifi)时,它也相当准确。它很简单,您不需要编写任何代码,只需配置它即可启用它。
结果是来自官方网络来源的PC和Android时间设置。
https://stackoverflow.com/questions/12820899
复制相似问题