前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
目前可以通过在代码中指定第一次开机的时间的方法设置出厂时间,具体方法如下:
1. 定义全局变量
在NetworkTimeUpdateService.java (frameworksbaseservicesjavacomandroidserver)这个文件中,在全局变量定义部分加入:
private static final String DECRYPT_STATE = trigger_restart_framework;
private static final String BOOT_SYS_PROPERTY = persist.sys.first_time_boot;
private static int mDefaultYear = 2013;
2. 设置第一次开机时间
同一个文件,在函数 public void systemReady()最后面加入下面的语句:
//add for first boot time set +++
String tempString = SystemProperties.get(BOOT_SYS_PROPERTY, );
boolean isFirstBoot = (tempString != null && .equals(tempString)) true false;
if(isFirstBoot){
tempString = SystemProperties.get(ro.kernel.qemu, );
boolean isEmulator = 1.equals(tempString) true false;
if(isEmulator){
Log.d(TAG, isEmulator + tempString);
return;
}
String decryptState = SystemProperties.get(vold.decrypt, );
Log.d(TAG, decryptState + decryptState);
if(.equals(decryptState) DECRYPT_STATE.equals(decryptState)){
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
Log.d(TAG, First boot + tempString + with date + today);
today.set(1, 0, mDefaultYear ); //设置想要设定的日期
Log.d(TAG, Set the year to + mDefaultYear );
SystemProperties.set(BOOT_SYS_PROPERTY, false);
SystemClock.setCurrentTimeMillis(today.toMillis(false));
}
}
//add for first boot time set ---