地图放大后，亮度显示不足，影响用户体验
===================

#### 问题现象

地图放大后，页面显示亮度较低，内容看不清，影响体验，如何在应用内设置屏幕亮度。

#### 背景知识

*   [setWindowBrightness](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowbrightness9)：允许应用主窗口设置屏幕亮度值，使用callback异步回调。
*   [getWindowProperties](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#getwindowproperties9)：获取当前窗口的属性，返回WindowProperties。

#### 问题定位

排查应用是否通过window实例提供的setWindowBrightness方法设置屏幕亮度，没有设置的话亮度跟随系统，此时亮度值为-1。

#### 分析结论

应用没有使用setWindowBrightness方法锁定屏幕亮度，导致地图放大后，显示亮度较低，影响体验。

#### 修改建议

使用setWindowBrightness方法锁定屏幕亮度。

import { window } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct FixedBrightnessDemo {
  @State message: string = 'Hello World';

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize($r('app.float.page\_text\_font\_size'))
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '\_\_container\_\_', align: VerticalAlign.Center },
          middle: { anchor: '\_\_container\_\_', align: HorizontalAlign.Center }
        })
        .onClick(() => {
          this.message = 'Welcome';
        });

      Button('设置屏幕亮度')
        .id('SetBrightnessBtn') _// 关键点1：必须设置 ID_
        .alignRules({
          top: { anchor: '\_\_container\_\_', align: VerticalAlign.Top },
          left: { anchor: '\_\_container\_\_', align: HorizontalAlign.Start }
        })
        .margin({ top: 50, left: 20 })
        .onClick(async () => {
          _// 关键点2：在点击事件中获取上下文，此时 Context 绝对可用且稳定_
          try {
            const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
          _  // 获取当前窗口_
            const win = await window.getLastWindow(context);
          _  // 设置亮度 (1.0 最亮, 0.0 最暗, -1.0 跟随系统)_
            await win.setWindowBrightness(1.0);
          } catch (err) {
            const error = err as BusinessError;
            console.error(\`设置失败: Code=${error.code}, Message=${error.message}\`);
          }
        });
    }
    .height('100%')
    .width('100%');
  }
}

效果如下：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/65/v3/sotUCfvgRv-Kf3ZJdL1yrw/zh-cn_image_0000002658856845.png?HW-CC-KV=V1&HW-CC-Date=20260709T134008Z&HW-CC-Expire=86400&HW-CC-Sign=383B47437F30A04FC9E66BF8AE4559C14495EDD5F1C7B6BB8AD7D78A19B2BF84 "点击放大")