android系统在java文件中获取系统属性

本文介绍了一种在Android项目中根据不同项目类型执行特定任务的方法。通过在system.prop中设置项目类型属性,然后在Java代码中使用SystemProperties类读取这些属性,从而实现根据不同项目类型的差异化功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:
把几个分支的项目合并到一个分支,但由于部分文件差异,我需要在当前的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));
                    }

                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值