找回密码
 立即注册
查看: 2462|回复: 0

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

[复制链接]

31

主题

38

帖子

201

积分

中级会员

Rank: 3Rank: 3

积分
201
发表于 2023-8-2 11:26:55 | 显示全部楼层 |阅读模式
本帖最后由 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命令推送配置文件设置永不息屏


系统层设置永不息屏的配置文件 power_mode_config.zip (914 Bytes, 下载次数: 861)

回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则