安卓设置系统时间,并不是想象的那么简单。系统提供SystemClock.setCurrentTimeMillis(),但会有权限上面的问题,无法成功设置系统时间,网上看了一些资料,要设置安卓系统时间大概两种方法,一个需要以mm的形式重新编译源码,另一个需要重新获取签名等,都比较麻烦(项目比较急,没这么多时间了),最后还是在网上看到了这个以命令方式设置时间的方法,亲自测试过,也是可以实现的,具体步骤如下:
1.设置时区指令
时区存放在系统的/data/property/persist.sys.timezone文件中,我们可以通过cat查看他的内容。
setprop persist.sys.timezone "时区"此指令可以设置时区,时区的对应消息可以参照这个链接 时区
2.设置系统时间指令
date指令可以查看当前的系统时间
date -s "yyyymmdd.[[[hh]mm]ss]" 设置系统时间
下面贴出实现代码:
try {
Process process = Runtime.getRuntime().exec("su");
String datetime2 = "20150104.160400"; //测试的设置的时间【时间格式 yyyyMMdd.HHmmss】
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("setprop persist.sys.timezone Asia/Shanghai\n");
os.writeBytes("date -s "+datetime2+"\n");
os.writeBytes("exit\n");
os.flush();
} catch (IOException e) {
e.printStackTrace();
}