Android 开发板内网下的时间同步
第一种方案:
间隔发送请求到服务器,从服务器拿到时间后修改系统时间
1:通过系统厂家给的接口修改时间
2:通过adb命令修改
public void testDate(){
try {
Process process = Runtime.getRuntime().exec("su");
String datetime="051420562020.00"; //测试的设置的时间【时间格式 MMddHHmmyyyy.ss】
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("date "+datetime+" set"+"\n"); //更改系统时间
os.writeBytes("hwclock -w\n"); //从系统时间同步到硬件时钟
os.writeBytes("exit\n");//退出
os.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
第二种方案:
从内网ntp服务器获取时间
adb指令:
adb root
adb remount
adb shell
shell中执行如下指令
#修改时区 如果不修改时区,同步后的时间会差4小时或8小时
setprop persist.sys.timezone Asia/Shanghai
# 将ip替换为内网ntp服务器的ip
settings put global ntp_server ip
# 重启
reboot
设备会在重启后自动获取内网ntp服务器时间
部分指令可以用busybox工具替换,但是busybox配置起来相对麻烦,能不用还是不用