本帖最后由 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, 下载次数: 868)
|