OpenHarmony电量与LED灯颜色定制开发
OpenHarmony系统默认提供了电量与LED灯颜色的映射关系,适用于部分产品形态(如Pad)使用LED灯颜色展示设备充电时的电量信息。高电量使用绿色、低电量使用黄色、极低电量使用红色。产品定制开发者可根据产品设计规格自定义此特性,本文档详细介绍了电量与LED灯颜色映射的定制方法。
约束与限制
- 产品定制的配置路径需根据具体产品配置策略确定,本文档以/vendor路径为例进行说明,实际开发中请根据产品配置策略调整定制路径。
- 仅适用于支持LED灯指示功能的产品形态。
- 设备要求:
标准系统开发板:如DAYU200/Hi3516DV300开源套件
开发步骤
1. 创建配置文件夹
在产品目录(例如:/vendor/hihope/rk3568)下创建battery文件夹,并在其中创建profile文件夹:
/vendor/hihope/rk3568
└── battery└── profile├── BUILD.gn└── battery_config.json
2. 编写battery_config.json
根据产品设计规格,编写定制的battery_config.json文件,配置格式如下:
{"light": {"low": {"soc": [0, 20],"rgb": [255, 192, 203]},"normal": {"soc": [20, 95],"rgb": [255, 0, 255]},"high": {"soc": [95, 100],"rgb": [0, 0, 255]}}
}
3. 电量等级说明
电量等级 | 描述 |
---|---|
low | 低电量 |
normal | 正常电量 |
high | 高电量 |
4. 电量区间与LED灯颜色映射配置说明
配置项 | 描述 |
---|---|
soc | 电量区间 |
rgb | LED灯RGB组合 |
5. 编写BUILD.gn文件
将battery_config.json打包到//vendor/etc/battery目录下,配置内容如下:
import("//build/ohos.gni")
ohos_prebuilt_etc("battery_config") {source = "battery_config.json"relative_install_dir = "battery"install_images = [ chipset_base_dir ]part_name = "product_rk3568"
}
6. 添加编译目标
将编译目标添加到/vendor/hihope/rk3568目录下ohos.build的"module_list"中:
{"parts": {"product_rk3568": {"module_list": ["//vendor/hihope/rk3568/default_app_config:default_app_config","//vendor/hihope/rk3568/image_conf:custom_image_conf","//vendor/hihope/rk3568/preinstall-config:preinstall-config","//vendor/hihope/rk3568/resourceschedule:resourceschedule","//vendor/hihope/rk3568/etc:product_etc_conf","//vendor/hihope/rk3568/battery/profile:battery_config"]}},"subsystem": "product_hihope"
}
7. 编译与烧录
./build.sh --product-name rk3568 --ccache
将定制版本烧录到DAYU200开发板中。
调测验证
-
开机后,进入shell命令行:
hdc shell
-
进入电池电量节点路径:
cd /data/service/el0/battery/battery
-
模拟电池信息上报并观察LED灯变化:
-
低电量测试:
echo 15 > capacity hidumper -s 3302 -a -rlow_power_led_alter
-
正常电量测试:
echo 95 > capacity hidumper -s 3302 -a -rnormal_power_led_alter
-
高电量测试:
echo 99 > capacity hidumper -s 3302 -a -rhigh_power_led_alter
-
默认配置示例
系统默认电量与LED灯颜色映射配置:
{"light": {"low": {"soc": [0, 10],"rgb": [255, 0, 0]},"normal": {"soc": [10, 90],"rgb": [255, 255, 0]},"high": {"soc": [90, 100],"rgb": [0, 255, 0]}}
}
默认配置打包路径:/system/etc/battery
注意事项
- RGB值范围为[0, 255],分别表示红、绿、蓝三色的强度。
- soc区间需按升序排列,且区间不能重叠。
- 电量区间配置需根据产品实际需求调整,确保覆盖0-100%的完整电量范围。
- 修改配置后需重新编译并烧录,才能生效。
- LED灯映射触发机制通过hidumper命令实现,需确保设备支持该命令。
关注鸿蒙百川,带你盘点更多鸿蒙需求定制。