概述

OpenHarmony系统默认亮度范围为 0 ~ 255(0为最小亮度,255为最大亮度),适用于所有应用窗口的全局亮度调节。针对部分显示设备因硬件限制无法覆盖此范围的场景,系统提供灵活的亮度范围定制能力。本章节详细说明如何基于硬件条件调整系统亮度阈值,确保显示效果与硬件能力匹配。


基本概念

概念 描述
系统亮度 全局亮度设置,影响所有应用窗口的亮度范围。
窗口亮度 单个应用窗口的独立亮度设置,仅影响当前窗口,退出后恢复系统亮度。

约束与限制

  1. 系统参数机制:亮度范围定制基于OpenHarmony的系统参数键值对配置实现,需确保配置项符合系统参数服务规范。
  2. 权限控制:配置文件需通过DAC(数据访问控制)权限设置,确保系统服务可正确解析配置。
  3. 参数范围限制:定制范围需满足 0 ≤ min ≤ default ≤ max ≤ 255 的约束。

开发步骤

1. 创建配置文件目录

在产品目录(如 /vendor/hihope/rk3568)下创建配置文件夹:

etc
├── BUILD.gn
├── display.para
├── display.para.dac

2. 编写 display.para(亮度参数配置)

示例:将亮度范围定制为 min=50default=75max=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. 编译与烧录

  1. 执行编译命令(以DAYU200为例):
    ./build.sh --product-name rk3568 --ccache
    
  2. 将定制版本烧录到开发板。

调测验证

  1. 进入Shell命令行

    hdc shell
    
  2. 验证配置生效

    hidumper -s 3308 -a -a
    
  3. 预期输出(定制后)

    ----------------------------------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


注意事项

  1. RGB值范围mindefaultmax 值需在 [0, 255] 区间内,且满足 min ≤ default ≤ max
  2. 权限配置display.para.dac 文件必须包含 foundation:foundation:444 权限,否则配置无法生效。
  3. 编译依赖:确保 BUILD.gn 中的 part_name 与产品配置一致(如 product_rk3568)。
  4. 验证方法:通过 hidumper 命令检查亮度阈值是否生效,避免直接依赖应用层亮度调节。

通过以上步骤,开发者可灵活适配不同硬件显示设备的亮度限制,确保系统亮度范围与硬件能力匹配,同时保持全局亮度调节的一致性与稳定性。

关注鸿蒙百川带你学习更多鸿蒙操作系统知识
在这里插入图片描述

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐