openharmony之系统亮度范围定制
概述
OpenHarmony系统默认亮度范围为 0 ~ 255(0为最小亮度,255为最大亮度),适用于所有应用窗口的全局亮度调节。针对部分显示设备因硬件限制无法覆盖此范围的场景,系统提供灵活的亮度范围定制能力。本章节详细说明如何基于硬件条件调整系统亮度阈值,确保显示效果与硬件能力匹配。
基本概念
概念 | 描述 |
---|---|
系统亮度 | 全局亮度设置,影响所有应用窗口的亮度范围。 |
窗口亮度 | 单个应用窗口的独立亮度设置,仅影响当前窗口,退出后恢复系统亮度。 |
约束与限制
- 系统参数机制:亮度范围定制基于OpenHarmony的系统参数键值对配置实现,需确保配置项符合系统参数服务规范。
- 权限控制:配置文件需通过DAC(数据访问控制)权限设置,确保系统服务可正确解析配置。
- 参数范围限制:定制范围需满足
0 ≤ min ≤ default ≤ max ≤ 255
的约束。
开发步骤
1. 创建配置文件目录
在产品目录(如 /vendor/hihope/rk3568
)下创建配置文件夹:
etc
├── BUILD.gn
├── display.para
├── display.para.dac
2. 编写 display.para
(亮度参数配置)
示例:将亮度范围定制为 min=50
、default=75
、max=150
# Brightness limits is 0-255.
const.display.brightness.min=50
const.display.brightness.default=75
const.display.brightness.max=150
3. 编写 display.para.dac
(权限配置)
确保系统参数服务有权限解析配置:
# DAC权限配置:foundation:foundation:444
const.display.brightness.="foundation:foundation:444"
4. 编写 BUILD.gn
(编译配置)
将配置文件打包到 /vendor/etc/param
目录:
import("//base/powermgr/display_manager/displaymgr.gni")
import("//build/ohos.gni")## Install display.para to /vendor/etc/param/display.para
ohos_prebuilt_etc("display.para") {
source = "display.para"
relative_install_dir = "param"
install_images = [ chipset_base_dir ]
part_name = "${displaymgr_part_name}"
subsystem_name = "powermgr"
}ohos_prebuilt_etc("display.para.dac") {
source = "display.para.dac"
relative_install_dir = "param"
install_images = [ chipset_base_dir ]
part_name = "${displaymgr_part_name}"
subsystem_name = "powermgr"
}group("param_files") {
deps = [":display.para",":display.para.dac",
]
}
5. 更新 bundle.json
(模块依赖)
在 bundle.json
中添加编译依赖(路径示例):
{"service_group": ["//base/powermgr/display_manager/service/etc:param_files"]
}
6. 编译与烧录
- 执行编译命令(以DAYU200为例):
./build.sh --product-name rk3568 --ccache
- 将定制版本烧录到开发板。
调测验证
-
进入Shell命令行:
hdc shell
-
验证配置生效:
hidumper -s 3308 -a -a
-
预期输出(定制后):
----------------------------------DisplayPowerManagerService--------------------------------- DISPLAY POWER MANAGER DUMP: Display Id=0 State=0 Discount=1.000000 Brightness=75 DeviceBrightness=75 Support Ambient Light: FALSE Auto Adjust Brightness: OFF Brightness Limits: Max=150 Min=50 Default=75
默认配置示例
原始系统亮度范围配置:
# Brightness limits is 0-255.
const.display.brightness.min=5
const.display.brightness.default=102
const.display.brightness.max=255
打包路径:/system/etc/param/display.para
注意事项
- RGB值范围:
min
、default
、max
值需在[0, 255]
区间内,且满足min ≤ default ≤ max
。 - 权限配置:
display.para.dac
文件必须包含foundation:foundation:444
权限,否则配置无法生效。 - 编译依赖:确保
BUILD.gn
中的part_name
与产品配置一致(如product_rk3568
)。 - 验证方法:通过
hidumper
命令检查亮度阈值是否生效,避免直接依赖应用层亮度调节。
通过以上步骤,开发者可灵活适配不同硬件显示设备的亮度限制,确保系统亮度范围与硬件能力匹配,同时保持全局亮度调节的一致性与稳定性。
关注鸿蒙百川,带你盘点更多鸿蒙需求定制。