android BSP开发之二

1.添加 system property

在/device/<vendor>/<project>/system.prop 文件中添加需要的属性。

如在XXX中添加"persist.sys.touch_mode"属性,在system.prop文件中新增一行如下内容:

cpp 复制代码
# Property for touch panel mode
persist.sys.touch_mode=glove

2**.添加Settings system, secure或者Global属性并监听**

下面以XXX为例添加Settings.system.BATTERY_SHIPPING_MODE.

添加BATTERY_SHIPPING_MODE Key

在frameworks/base/core/java/android/provider/Settings.java文件中添加"BATTERY_SHIPPING_MODE" key.

注册监听code

在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 文件的SettingsObserver中注册监听:

java 复制代码
class SettingsObserver extends ContentObserver {
        void observe() {
            // Observe all users' changes
            ......
            resolver.registerContentObserver(Settings.System.getUriFor(
                    Settings.System.BATTERY_SHIPPING_MODE),false,this,
                    UserHandle.USER_ALL);
        }

        @Override public void onChange(boolean selfChange) {
            ......
            updateBatteryShippingMode();
            ......
        }
    }

添加功能

java 复制代码
private void updateBatteryShippingMode(){
        int shippingMode = Settings.System.getInt(mContext.getContentResolver(), Settings.System.BATTERY_SHIPPING_MODE, 0);
        if(shippingMode == 1){
            ......
        }
    }

功能测试

测试功能的时候需要添加下面的权限

XML 复制代码
android:sharedUserId="android.uid.system"
    ......
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
相关推荐
W.Buffer4 分钟前
通用:MySQL主库BinaryLog样例解析(ROW格式)
android·mysql·adb
qiushan_37 分钟前
【Android】【Framework】进程的启动过程
android
用户20187928316739 分钟前
Java经典一问:String s = new String("xxx");创建了几个String对象?
android
用户20187928316740 分钟前
用 “建房子” 讲懂 Android 中 new 对象的全过程:从代码到 ART 的魔法
android
用户20187928316741 分钟前
JVM类加载大冒险:小明的Java奇幻之旅
android
用户20187928316744 分钟前
为何说Java传参只有值传递?
android
手机不死我是天子1 小时前
《Android 核心组件深度系列 · 第 4 篇 ContentProvider》
android·架构
鹏多多1 小时前
flutter-切换状态显示不同组件10种实现方案全解析
android·前端·ios
FengyunSky2 小时前
高通Camx内存问题排查
android·linux·后端
00后程序员张3 小时前
苹果软件混淆的工程逻辑,从符号空间到资源扰动的体系化实现
android·ios·小程序·https·uni-app·iphone·webview