• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3633

common/06-May-2025-419319

entry/06-May-2025-4,3184,151

feature/06-May-2025-5,7575,345

hvigor/06-May-2025-2322

screenshots/devices/06-May-2025-

.gitignoreD06-May-2025121 1010

README_zh.mdD06-May-202517.5 KiB210155

build-profile.json5D06-May-20251.3 KiB5554

hvigorfile.tsD06-May-2025768 161

hvigorwD06-May-20252.1 KiB6228

hvigorw.batD06-May-20252 KiB7256

oh-package.json5D06-May-2025831 2625

ohosTest.mdD06-May-20254.5 KiB3128

README_zh.md

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| ![power](screenshots/devices/battery_stats.jpg) |     ![usb](screenshots/devices/brightness.jpg)      |          ![home](screenshots/devices/power.jpg)           |
31|                   **设置数据项名称**                   |                      **系统能力**                       |                         **系统参数**                          |
32|   ![power](screenshots/devices/settings.jpg)    |   ![usb](screenshots/devices/sys_capability.jpg)    |      ![home](screenshots/devices/sys_parameter.jpg)       |
33|                   **电量信息**                   |                      **设备信息**                       |                         **组合按键**                          |
34|   ![battery](screenshots/devices/battery.jpg)    | ![device_info](screenshots/devices/device_info.jpg) | ![input_consumer](screenshots/devices/input_consumer.jpg) |
35|                   **输入设备**                   |                      **输入事件**                       |                         **鼠标指针**                          |
36|   ![input_device](screenshots/devices/input_device.jpg)    | ![input_event](screenshots/devices/input_event.jpg) |          ![mouse](screenshots/devices/mouse.jpg)          |
37|                   **输入按键事件**                   |                                             |                                                 |
38|   ![input_key](screenshots/devices/input_key.jpg)   |                                                     |                                                           |
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
6412.输入设备:进入设备输入管理页面,展示设备输入列表,可以查看输入设备详情,同时可以监听设备的热插拔状态。
65
6613.输入事件:进入全屏监听页面,实现启动或取消全屏输入事件,在启动全屏输入事件监听时,可以查看当前触屏的详细信息,模拟注入返回事件,实现返回能力。
67
6814.输入按键事件:进入输入按键事件管理页面,显示由外部设备如软键盘输入触发的消息。
69
7015.鼠标指针:进入鼠标管理页面,实现鼠标状态、鼠标指针信息、设置鼠标速度和显示样式,启动鼠标事件监听时,可以查看鼠标在界面上操作的详细信息。
71
72### 工程目录
73
74```
75DeviceManagementCollection
76├── AppScope
77│   └── app.json5                               //APP信息配置文件
78├── entry/src/main                              //语言基础类库应用首页
79│   ├── ets
80│   │   ├── entryability
81│   │   ├── pages
82│   │   │   ├── Index.ets                       //主页入口
83│   │   │   ├── components
84│   │   │   │   └── Capabilities.ets            //根据点击的菜单,展示对应的子界面
85│   └── module.json5
8687├── common/src/main                             //公共组件及工具类
88│   ├── ets
89│   │   ├── components
90│   │   │   └── CustomDataSource.ets            //自定义DataSource,LazyForEach时使用
91│   │   ├── util
92│   │   │   └── JSONUtils                       //JSON数据格式化
93│   │   │   ├── Logger.ets                      //日志工具类
94│   │   │   └── ResourceUtil.ets                //资源管理工具类
95│   └── module.json5
9697├── menuitems/src/main                          //菜单
98│   ├── ets
99│   │   ├── Index.ets                           //对外提供的接口列表
100│   │   ├── menulist                            //菜单组件
101│   │   │   └── MenuList.ets
102│   │   ├── components                          //菜单相关自定义组件
103│   └── module.json5
104105├── capabilities/src/main                       //功能集
106│   ├── ets
107│   │   ├── capabilities                        //各个子模块功能组件
108│   │   │   ├── BatteryStats.ets                //耗电统计
109│   │   │   ├── BatteryView.ets                 //电量信息
110│   │   │   ├── BrightnessManager.ets           //屏幕亮度
111│   │   │   ├── DeviceInfo.ets                  //设备信息
112│   │   │   ├── InputConsumer.ets               //组合按键
113│   │   │   ├── InputDeviceManager.ets          //输入设备管理
114│   │   │   ├── InputEventManager.ets           //输入事件管理
115│   │   │   ├── InputKeyEventManager.ets        //输入按键事件
116│   │   │   ├── MouseManager.ets                //鼠标事件
117│   │   │   ├── PowerManager.ets                //系统电源管理
118│   │   │   ├── SettingsManager.ets             //设置数据项名称
119│   │   │   ├── SystemCapability.ets            //系统能力
120│   │   │   └── SystemParameter.ets             //系统参数
121│   │   ├── components                          //子模块相关组件
122│   │   │   ├── batterystats                    //耗电统计相关组件
123│   │   │   ├── ColumnOperation.ets             //展示一列功能按钮的组件
124│   │   │   └── RadiusColumn.ets                //白色圆角的自定义Columm组件
125│   │   ├── model                               //相关数据模型
126│   │   └── utils                               //相关工具类
127│   └── module.json5
128```
129
130### 具体实现
131
1321.首页菜单展示:使用一个module,menuitems完成菜单组件的实现,传入要展示的菜单的strarray类型的资源和菜单点击对应的组件即可。使用Navigation和NavRouter组件实现菜单点击进入功能界面,使用LocalStorage实现应用内Ability内数据共享,点击菜单时标记selectedLabel,在entry中的Capabilities组件中,通过selectedLabel显示对应的功能组件。
133
1342.耗电统计:使用[@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/)
135接口获取硬件和应用的耗电量与百分比,使用[@ohos.bundle.bundleManager.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-bundleManager.md/)
136接口获取系统已安装应用信息。
137
1383.屏幕亮度:使用[@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/)
139实现屏幕亮度控制。
140
1414.系统电源管理:使用[@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/)
142实现休眠、关机、重启、设置电源模式功能。
143
1445.设置数据项名称:使用[@ohos.settings.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-settings.md/)
145实现将数据项名称及数据项的值保存到数据库中。
146
1476.系统能力:使用[@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/)
148实现获取系统能力集合的字符串并显示。
149
1507.系统参数:使用[@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/)
151实现设置一个系统参数、获取并展示系统参数功能。
152
1538.电量信息:使用[@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)接口获取电池和充放电状态信息
154
1559.设备信息:使用[@ohos.deviceInfo](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-device-info.md)获取设备相关信息。
156
15710.组合按键:使用[@ohos.multimodalInput.inputConsumer](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputconsumer.md) 订阅组合按键,当组合按键被触发时展示组合按键回调信息。
158
15911.输入设备:使用[@ohos.multimodalInput.inputDevice](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-inputdevice.md) 获取输入设备列表,并显示输入设备信息,实现设备的热插拔监听。
160
16112.输入事件:使用[@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)触摸事件,模拟按键被按下效果。
162
16313.鼠标指针:使用[@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)实现鼠标指针的显示或隐藏状态,设置鼠标移动速度和显示样式。
164
16514.输入按键事件:使用 [@ohos.multimodalInput.keyEvent (按键输入事件)](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-input-kit/js-apis-keyevent.md)监听按键输入的信息。
166
167### 相关权限
168
1691.允许应用重启设备权限:[ohos.permission.REBOOT](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionreboot)
170
1712.允许系统应用设置省电模式、获取省电模式的配置信息并接收配置变化的通知权限:[ohos.permission.POWER_OPTIMIZATION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionpower_optimization)
172
1733.允许应用查询已安装应用的信息权限:[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)
174
1754.允许系统应用获取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)
176
1775.允许应用监听输入事件权限:[ohos.permission.INPUT_MONITORING](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissioninput_monitoring)
178
1796.允许应用读取已安装应用列表:[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)
180### 依赖
181
182不涉及。
183
184### 约束与限制
185
1861.本示例仅支持标准系统上运行。
187
1882.本示例适配API version 12版本SDK,SDK版本号(API Version 12 Release),镜像版本号(5.0Release)
189
1903.本示例需要使用DevEco Studio 版本号(4.0Release)才可编译运行。
191
1924.本示例需要使用系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco
193Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md/)194
1955.本示例所配置的REBOOT、POWER_OPTIMIZATION、GET_BUNDLE_INFO_PRIVILEGED权限为system_basic或system_core级别(
196相关权限级别可通过[权限定义列表]( https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md/ )
197查看),需要手动配置对应级别的权限签名(
198具体操作可查看[自动化签名方案]( https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/hapsigntool-overview.md/ ))。
199
200### 下载
201
202如需单独下载本工程,执行如下命令:
203
204```text
205git init
206git config core.sparsecheckout true
207echo code/SystemFeature/DeviceManagement/DeviceManagementCollection/ > .git/info/sparse-checkout
208git remote add origin https://gitee.com/openharmony/applications_app_samples.git
209git pull origin master
210```