Android设备有两种同步时间的方式,一种,人为手动调节;一种,使用网络提供的时间
注:
源码来自Android 7.1
二、详细介绍
注:本文重点介绍网络同步相关的业务
1.app端
通过设置Settings.Global.AUTO_TIME,即
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AUTO_TIME,
isChecked ? 1 : 0)
1 代表开启
0 代表关闭
2.系统服务端--NetworkTimeUpdateService
1)adb 快捷查询方式
adb shell dumpsys network_time_update_service
了解几个关键变量
了解真正的实现方法
2)业务实现细节
知识补充:
知识点一、
DatagramSocket
DatagramPacket
DatagramSocket socket = null
这种socket通信SNTP协议 也不错
知识点二
System.currentTimeMillis
SystemClock.elapseRealtime
开机的时间从哪里获取,怎么出来?
参考学习
安装ntp,yum install ntp步骤阅读
2
Date 发现格式为EDT,我们需要修改为CST格式
步骤阅读
3
[root@test ~]# mv /etc/localtime /etc/localtime.bak
[root@test ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@test ~]# date
步骤阅读
4
并用ntpdate 208.91.112.50,同步网上的一台ntp服务器同步时间
步骤阅读
5
vi/etc/ntp.conf,修改配置文件,使能同步网上的ntp服务器
步骤阅读
6
我们这里使用的是centos7不同于以往linux的操作,对于开机自启动的调整,命令有所不同。chkconfig --list查看非系统内置服务的自启动状态
systemctl enable ntpd.service //开机自启动
步骤阅读
7
ntpq –p
*表示目前使用的ntp server的状态
步骤阅读
8
Ntpstat,可以看到已经同步了
步骤阅读
9
显示所有已启动的服务 systemctl list-units --type=service
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)