1# 设备管理合集(系统特性)(仅对系统应用开放) 2 3### 介绍 4 5本示例集合设备管理相关(系统特性)不需要复杂功能展示的模块,展示了各个模块的基础功能,包含: 6 7- [@ohos.batteryStatistics (耗电统计)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-batteryStatistics-sys.md/) 8- [@ohos.brightness (屏幕亮度)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-brightness-sys.md/) 9- [@ohos.power (系统电源管理)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-power-sys.md/) 10- [@ohos.settings (设置数据项名称)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-settings.md/) 11- [@ohos.systemCapability (系统能力)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-system-capability-sys.md/) 12- [@ohos.systemParameterEnhance (系统参数)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-system-parameterEnhance-sys.md/) 13- [@ohos.batteryInfo (电量信息)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-battery-info-sys.md) 14- [@ohos.deviceInfo (设备信息)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-device-info.md) 15- [@ohos.multimodalInput.inputConsumer (组合按键)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputconsumer.md) 16- [@ohos.multimodalInput.inputDevice (输入设备)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputdevice.md) 17- [@ohos.multimodalInput.inputEvent (输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputevent.md) 18- [@ohos.multimodalInput.inputEventClient (按键注入)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputeventclient-sys.md) 19- [@ohos.multimodalInput.inputMonitor (输入监听)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputmonitor-sys.md) 20- [@ohos.multimodalInput.keyCode (键值)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-keycode.md) 21- [@ohos.multimodalInput.keyEvent (按键输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-keyevent.md) 22- [@ohos.multimodalInput.mouseEvent (鼠标输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-mouseevent.md) 23- [@ohos.multimodalInput.pointer (鼠标指针)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-pointer.md) 24- [@ohos.multimodalInput.touchEvent (触摸输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-touchevent.md) 25 26### 效果预览 27 28| **耗电统计** | **屏幕亮度** | **系统电源管理** | 29|:-----------------------------------------------:|:---------------------------------------------------:|:---------------------------------------------------------:| 30|  |  |  | 31| **设置数据项名称** | **系统能力** | **系统参数** | 32|  |  |  | 33| **电量信息** | **设备信息** | **组合按键** | 34|  |  |  | 35| **输入设备** | **输入事件** | **鼠标指针** | 36|  |  |  | 37| **输入按键事件** | | | 38|  | | | 39 40使用说明 41 421.首页展示语言基础类库各个子模块菜单,点击进入对应的模块页面。 43 442.各个子模块界面中点击功能按钮完成各个功能。 45 463.耗电统计:进入耗电统计页面,展示软硬件耗电排行。 47 484.屏幕亮度:获取当前屏幕亮度,设置屏幕亮度。 49 505.系统电源管理:点击按钮分别实现休眠、关机、重启、设置电源模式功能。 51 526.设置数据项名称:将数据项名称及数据项的值保存到数据库中。 53 547.系统能力:获取系统能力集合的字符串并显示。 55 568.系统参数:点击按钮分别实现设置一个系统参数、获取并展示系统参数功能。(需要配置selinux权限) 57 589.电量信息:进入设备电量信息页面,页面主要显示电量信息,包括:当前设备是否支持电池或电池是否在位的查询、剩余电池电量百分比、充电状态、电池健康状态、充电器类型、电池电压、电池技术型号、电池温度、电量等级等信息。 59 6010.设备基础信息:打开设备信息管理页面,展示基础信息。 61 6211.组合按键:进入组合按键管理页面,包括显示组合按键信息,组合按键的订阅状态,在订阅状态下,组合按键被触发时显示组合按键的信息。 63``` 64// 系统级别的组合按键在使用前需在系统中预定义 65hdc shell mount -o rw,remount / 66hdc file recv /system/etc/multimodalinput/exceptional_system_keys_config.json 67// 添加以下预定义组合按键 68/* 69 { 70 "preKeys": [ 2045, 2047 ], 71 "finalKey": 2035, 72 "longPressTime": 0, 73 "triggerType": "down" 74 }, 75 { 76 "preKeys": [ 2045, 2047 ], 77 "finalKey": 2020, 78 "longPressTime": 0, 79 "triggerType": "down" 80 } 81*/ 82hdc file send exceptional_system_keys_config.json /system/etc/multimodalinput 83hdc shell reboot 84``` 85 8612.输入设备:进入设备输入管理页面,展示设备输入列表,可以查看输入设备详情,同时可以监听设备的热插拔状态。 87 8813.输入事件:进入全屏监听页面,实现启动或取消全屏输入事件,在启动全屏输入事件监听时,可以查看当前触屏的详细信息,模拟注入返回事件,实现返回能力。 89 9014.输入按键事件:进入输入按键事件管理页面,显示由外部设备如软键盘输入触发的消息,使用前需按`TAB`键,让输入按键事件文本获取焦点。 91 9215.鼠标指针:进入鼠标管理页面,实现鼠标状态、鼠标指针信息、设置鼠标速度和显示样式,启动鼠标事件监听时,可以查看鼠标在界面上操作的详细信息。 93 94### 工程目录 95 96``` 97DeviceManagementCollection 98├── AppScope 99│ └── app.json5 //APP信息配置文件 100├── entry/src/main //语言基础类库应用首页 101│ ├── ets 102│ │ ├── entryability 103│ │ ├── pages 104│ │ │ ├── Index.ets //主页入口 105│ │ │ ├── components 106│ │ │ │ └── Capabilities.ets //根据点击的菜单,展示对应的子界面 107│ └── module.json5 108│ 109├── common/src/main //公共组件及工具类 110│ ├── ets 111│ │ ├── components 112│ │ │ └── CustomDataSource.ets //自定义DataSource,LazyForEach时使用 113│ │ ├── util 114│ │ │ └── JSONUtils //JSON数据格式化 115│ │ │ ├── Logger.ets //日志工具类 116│ │ │ └── ResourceUtil.ets //资源管理工具类 117│ └── module.json5 118│ 119├── menuitems/src/main //菜单 120│ ├── ets 121│ │ ├── Index.ets //对外提供的接口列表 122│ │ ├── menulist //菜单组件 123│ │ │ └── MenuList.ets 124│ │ ├── components //菜单相关自定义组件 125│ └── module.json5 126│ 127├── capabilities/src/main //功能集 128│ ├── ets 129│ │ ├── capabilities //各个子模块功能组件 130│ │ │ ├── BatteryStats.ets //耗电统计 131│ │ │ ├── BatteryView.ets //电量信息 132│ │ │ ├── BrightnessManager.ets //屏幕亮度 133│ │ │ ├── DeviceInfo.ets //设备信息 134│ │ │ ├── InputConsumer.ets //组合按键 135│ │ │ ├── InputDeviceManager.ets //输入设备管理 136│ │ │ ├── InputEventManager.ets //输入事件管理 137│ │ │ ├── InputKeyEventManager.ets //输入按键事件 138│ │ │ ├── MouseManager.ets //鼠标事件 139│ │ │ ├── PowerManager.ets //系统电源管理 140│ │ │ ├── SettingsManager.ets //设置数据项名称 141│ │ │ ├── SystemCapability.ets //系统能力 142│ │ │ └── SystemParameter.ets //系统参数 143│ │ ├── components //子模块相关组件 144│ │ │ ├── batterystats //耗电统计相关组件 145│ │ │ ├── ColumnOperation.ets //展示一列功能按钮的组件 146│ │ │ └── RadiusColumn.ets //白色圆角的自定义Columm组件 147│ │ ├── model //相关数据模型 148│ │ └── utils //相关工具类 149│ └── module.json5 150``` 151 152### 具体实现 153 1541.首页菜单展示:使用一个module,menuitems完成菜单组件的实现,传入要展示的菜单的strarray类型的资源和菜单点击对应的组件即可。使用Navigation和NavRouter组件实现菜单点击进入功能界面,使用LocalStorage实现应用内Ability内数据共享,点击菜单时标记selectedLabel,在entry中的Capabilities组件中,通过selectedLabel显示对应的功能组件。 155 1562.耗电统计:使用[@ohos.batteryStatistics.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-batteryStatistics-sys.md/) 157接口获取硬件和应用的耗电量与百分比,使用[@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-bundleManager.md/) 158接口获取系统已安装应用信息。 159 1603.屏幕亮度:使用[@ohos.brightness.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-brightness-sys.md/) 161实现屏幕亮度控制。 162 1634.系统电源管理:使用[@ohos.power.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-power-sys.md/) 164实现休眠、关机、重启、设置电源模式功能。 165 1665.设置数据项名称:使用[@ohos.settings.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-settings.md/) 167实现将数据项名称及数据项的值保存到数据库中。 168 1696.系统能力:使用[@ohos.systemCapability.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-system-capability-sys.md/) 170实现获取系统能力集合的字符串并显示。 171 1727.系统参数:使用[@ohos.systemParameterEnhance.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-system-parameterEnhance-sys.md/) 173实现设置一个系统参数、获取并展示系统参数功能。 174 1758.电量信息:使用[@ohos.batteryInfo.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-battery-info-sys.md)接口获取电池和充放电状态信息 176 1779.设备信息:使用[@ohos.deviceInfo](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-device-info.md)获取设备相关信息。 178 17910.组合按键:使用[@ohos.multimodalInput.inputConsumer](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputconsumer.md) 订阅组合按键,当组合按键被触发时展示组合按键回调信息。 180 18111.输入设备:使用[@ohos.multimodalInput.inputDevice](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputdevice.md) 获取输入设备列表,并显示输入设备信息,实现设备的热插拔监听。 182 18312.输入事件:使用[@ohos.multimodalInput.inputMonitor](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputevent.md)开启监听全局触屏事件,当触发触屏事件时显示触屏详情,使用[@ohos.multimodalInput.inputEventClient](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputeventclient-sys.md)模拟返回按键进行按键注入,实现返回功能,在column组件中添加[@ohos.multimodalInput.touchEvent](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-touchevent.md)触摸事件,模拟按键被按下效果。 184 18513.鼠标指针:使用[@ohos.multimodalInput.mouseEvent](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-mouseevent.md)监听鼠标事件,并显示鼠标操作回调信息,使用[@ohos.multimodalInput.pointer](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-pointer.md)实现鼠标指针的显示或隐藏状态,设置鼠标移动速度和显示样式。 186 18714.输入按键事件:使用 [@ohos.multimodalInput.keyEvent (按键输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-keyevent.md)监听按键输入的信息。 188 189### 相关权限 190 1911.允许应用重启设备权限:[ohos.permission.REBOOT](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionreboot) 192 1932.允许系统应用设置省电模式、获取省电模式的配置信息并接收配置变化的通知权限:[ohos.permission.POWER_OPTIMIZATION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionpower_optimization) 194 1953.允许应用查询已安装应用的信息权限:[ohos.permission.GET_BUNDLE_INFO_PRIVILEGED](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_bundle_info_privileged) 196 1974.允许系统应用获取UDID权限:[ohos.permission.sec.ACCESS_UDID](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionsecaccess_udid) 198 1995.允许应用监听输入事件权限:[ohos.permission.INPUT_MONITORING](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissioninput_monitoring) 200 2016.允许应用读取已安装应用列表:[ohos.permission.GET_INSTALLED_BUNDLE_LIST](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_installed_bundle_list) 202 2037.允许应用设置SettingsData中设备级配置数据表和用户级配置数据表:[ohos.permission.MANAGE_SETTINGS](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionmanage_settings) 204 2058.允许系统应用注入输入事件:[ohos.permission.INJECT_INPUT_EVENT](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissioninject_input_event) 206 207### 依赖 208 209不涉及。 210 211### 约束与限制 212 2131.本示例仅支持标准系统上运行。 214 2152.本示例适配API version 12版本SDK,SDK版本号(API Version 12 Release),镜像版本号(5.0Release)。 216 2173.本示例需要使用DevEco Studio NEXT Release(Build Version: 5.0.3.900, built on October 8, 2024)才可编译运行。 218 2194.本示例需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco 220Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md/)。 221 2225.本示例所配置的REBOOT、POWER_OPTIMIZATION、GET_BUNDLE_INFO_PRIVILEGED权限为system_basic或system_core级别( 223相关权限级别可通过[权限定义列表]( https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md/ ) 224查看),需要手动配置对应级别的权限签名( 225具体操作可查看[自动化签名方案]( https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/hapsigntool-overview.md/ ))。 226 227### 下载 228 229如需单独下载本工程,执行如下命令: 230 231```text 232git init 233git config core.sparsecheckout true 234echo code/SystemFeature/DeviceManagement/DeviceManagementCollection/ > .git/info/sparse-checkout 235git remote add origin https://gitee.com/openharmony/applications_app_samples.git 236git pull origin master 237```