目的:
把几个分支的项目合并到一个分支,但由于部分文件差异,我需要在当前的java文件中获取当前的项目名,从而根据不同的项目执行不同的任务.
实施:
1.在android/device/qcom/msm8909/system.prop中加入我需要的属性,如:
//GT11:1 GT22:2
ro.sys.projecttype=1
不同的项目用不同的值,在编译完成后,会在out/terget/product/msm8909/system/中生成build.prop文件,该文件就包含了在system.prop中加入的ro.sys.projecttype=1这句.
2.接着我要在PhoneWindowManager.java中调用这个属性,需要import以下类:
android.os.SystemProperties
3.接着在代码中调用该类的方法:
String isProjectType = SystemProperties.get("ro.sys.projecttype");//获取属性值
if("1".equals(isProjectType)){
Log.d(TAG, "1 == SystemProperties.get persist.sys.project.type");
mPowerManager.goToSleep(eventTime,
PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
} else if("2".equals(isProjectType) || "3".equals(isProjectType)){
Log.d(TAG, "2 == SystemProperties.get persist.sys.project.type");
if(isLockShowing){
mPowerManager.goToSleep(eventTime,
PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
} else {
sendKeySync(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
sendKeySync(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
}
}