OpenHarmony源码版本:4.0release
开发板:DAYU / rk3568
修改目录:base/powermgr/power_manager/services/native/profile/power_mode_config.xml
通过文件中的提示可以知道DisplayOffTime表示息屏的,因此只需要修改DisplayOffTime 对应的id:101即可。
value取值 -1 表示不设置,如DisplayOffTime设为 -1 表示不息屏
例:
通过上一步我们查看power_mode_config.xml 我们知道,当模式为性能优先即id=602时,DisplayOffTime=1 的value值 系统默认为-1,所以可以通过hdc指令进行修改
1、执行hdc shell命令
hdc shell power-shell setmode 602
2、执行成功后,会打印出
Set Mode: 602
Set Mode Success!
不过这个修改电源模式的结果不保存,会在系统重启后恢复默认的正常模式,需要再次执行 power-shell 命令进行设置
首先本地复制一份 power_mode_config.xml 文件,将电源管理中的 101 项的value值改为 -1, 保存备用
1、获取读写权限
hdc shell "mount -o remount,rw /"
2、将修改保存的power_mode_config.xml文件推送到开发板
hdc file send power_mode_config.xml /vendor/etc/power_config/
3、重启
hdc shell reboot
通过hdc推送 power_mode_config.xml 文件到开发板中这种方式,只要不重新烧录开发板的vendor分区,即使开关机开发板,效果都是持续的。
如果执行第2步报以下错误:Error opening file: illegal operation on a directory, path:/vendor/etc/power_config/
说明可能不存在power_config文件夹,需要执行hdc shell 进入,cd /vendor/etc/ ,执行mount -o rw,remount /vendor, 执行mkdir power_config 创建文件夹,执行exit退出,然后再重新执行第2步。
如果执行第2步报以下错误:Error opening file: read-only file system, path:/vendor/etc/power_config//power_mode_config.xml
说明没有挂载,需要执行hdc shell进入,执行mount -o rw,remount /vendor ,再执行exit退出后,然后再重新执行第2步
这种方式不同于上面说到的几种方式,这种方式仅针对当前应用
private async keepScreenOn(status) {
let context = getContext(this) as common.BaseContext
let windowClass = await window.getLastWindow(context) //获取窗口实例
let isScreenOn = await windowClass.getWindowProperties().isKeepScreenOn //查看屏幕常亮状态
if (!isScreenOn) {
await windowClass.setWindowKeepScreenOn(status) //设置窗口常亮或取消
}
console.info("屏幕常亮状态: " + isScreenOn)
}
在应用的onPageShow方法执行keepScreenOn(true),在onPageHide方法执行keepScreenOn(false)