Trainee_Li 发表于 2023-8-2 11:26:55

OpenHarmony应用开发中设置屏幕常亮

本帖最后由 Trainee_Li 于 2023-8-22 09:38 编辑

方法一 应用层设置

通过调用系统Api @ohos.window下的setWindowKeepScreenOn可以设置屏幕常亮。

导入模块 import window from '@ohos.window';

窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。该模块提供以下窗口相关的常用功能:

      Window:当前窗口实例,窗口管理器管理的基本单元。
      WindowStage:窗口管理器。管理各个基本窗口单元。

示例代码(使用Promise回调):
      let isKeepScreenOn = true;
      try {
            let promise = windowClass.setWindowKeepScreenOn(isKeepScreenOn);
            promise.then(() => {
                console.info('Succeeded in setting the screen to be always on.');
            }).catch((err)=>{
                console.info('Failed to set the screen to be always on. Cause:' + JSON.stringify(err));
            });
      } catch (exception) {
            console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(exception));
      }


注意:此方法仅在调用的应用处于前台活跃状态才能有效,如果该应用切到后台或被销毁,则无法继续保持屏幕常亮。如果该应用从后台切到前台,无需重新调用api即可继续保持屏幕常亮;如果重新启动该应用,则需要再次调用api才可以继续保持屏幕常亮。

方法二 shell命令设置


在shell环境下输入:power-shell setmode 602 即可设置屏幕常亮。如果需要恢复非屏幕常亮状态,则输入:power-shell setmode 600注意: 此方法重启设备也会保持上次输入的指令状态。

方法三 系统层设置


将powermgr/power_manager/services/native/profile/power_mode_config.xml下的
      <switch_proxy version="1">
          <proxy id="600">
               <switch id="101" value="30000" recover_flag="0"/>
               ···
               </proxy>
                ···
      </switch_proxy>


更改为:
      <switch_proxy version="1">          <proxy id="600">            <switch id="101" value="-1" recover_flag="0"/>             ···      </proxy>         ···      </switch_proxy>
注意: 此方法属于修改系统默认模式为常亮模式,所以无法再通过方法二的方式恢复非屏幕常亮状态。



方法四 使用hdc_std file send命令推送配置文件设置永不息屏
系统层设置永不息屏的配置文件:
首先,连接开发板,打开命令行窗口输入hdc_std shell进行通讯。

接着,输入find -name power_mode_config.xml查找原始配置文件所在的位置。


然后,使用exit退出shell,接着向开发板替换配置文件。规则是hdc_std file send 本地文件路径 开发板目标路径。这时会报文件系统是只读的,因此需要更改权限。

更改权限。输入hdc_std shell后,输入mount -o rw,remount / 修改文件系统只读权限,接着输入exit退出shell,重新执行hdc_std file send 本地文件路径 开发板目标路径。






重启开发板,此时就是永不息屏状态。








发表于 2025-1-15 12:04:45

hdc shell power-shell setmode 602
hdc shell power-shell wakeup
页: [1]
查看完整版本: OpenHarmony应用开发中设置屏幕常亮