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"/>
相关推荐
2501_9151063232 分钟前
iOS 证书类型及作用说明 账号证书与签名配置的完整解读
android·ios·小程序·https·uni-app·iphone·webview
九皇叔叔1 小时前
RHEL9 安装 MySQL 8.4.11.LTS 版本
android·mysql·adb
海兰1 小时前
【数据库】tdsql(MySQL )的事务隔离级别
android·数据库·mysql
哆啦A梦z1 小时前
Android BLE 实战:从小米手环 7 踩坑到完整连接框架
android
IKUN家族1 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
笑一下蒜了.2 小时前
Linux 存储多路径访问手册|multipath.conf 各配置段详解
android·linux·运维
凡泰AI2 小时前
如何通过小程序多端框架,让一个小程序同时运行在iOS、安卓、鸿蒙以及PC客户端,实现一次开发多端运行的效果
android·ios·小程序
一笑的小酒馆3 小时前
Androidiot扫地机器人设备详情页地图加载慢卡顿优化方案
android
xixiaoyunya3 小时前
安卓远程管理电脑/NAS文件:从传统SMB方案到Web化私有云的选型与落地实践
android·电脑
Zhu7588 小时前
在k8s集群部署MySQL单实例,支持多个主流发行版
android·mysql·kubernetes