赞
踩
OpenHarmony源码版本:4.0release
开发板:DAYU / rk3568
修改目录:base/powermgr/power_manager/services/native/profile/power_mode_config.xml
通过文件中的提示可以知道DisplayOffTime表示息屏的,因此只需要修改DisplayOffTime 对应的id:101即可。
value取值 -1 表示不设置,如DisplayOffTime设为 -1 表示不息屏
例:<switch id="101" value="-1" recover_flag="0"/> 表示不息屏
- <!--
- Power Mode Definitions: // 电源模式定义
- MODE_NORMAL = 600, // 正常模式
- MODE_POWER_SAVE = 601, // 省电模式
- MODE_PERFORMANCE = 602, // 性能优先
- MODE_EXTREME_POWER_SAVE = 603, // 超级省电
- -->
- <!--
- Action Definitions: // 行为定义
- DisplayOffTime = 101, // 息屏时间控制
- SystemAutoSleepTime = 102, // 系统自动睡眠时间控制
- AutoAdjustBrightness = 103, // 亮度自动调整时间控制
- AutoWindowRotation = 107, // 窗口自动旋转时间控制
- SystemBrightness = 115, // 系统亮度调节
- VibratorsState = 120, // 马达(震动)状态
- -->
- <switch_proxy version="1">
- <proxy id="600">
- <switch id="101" value="-1" recover_flag="0"/>
- <switch id="102" value="0" recover_flag="0"/>
- <switch id="103" value="-1" recover_flag="0"/>
- <switch id="107" value="1" recover_flag="0"/>
- <switch id="115" value="102" recover_flag="0"/>
- <switch id="120" value="1" recover_flag="0"/>
- </proxy>
- <proxy id="601">
- <switch id="101" value="-1" recover_flag="0"/>
- <switch id="102" value="5000" recover_flag="0"/>
- <switch id="103" value="-1" recover_flag="0"/>
- <switch id="107" value="-1" recover_flag="0"/>
- <switch id="115" value="50" recover_flag="0"/>
- <switch id="120" value="-1" recover_flag="0"/>
- </proxy>
- <proxy id="602">
- <switch id="101" value="-1" recover_flag="0"/>
- <switch id="102" value="-1" recover_flag="0"/>
- <switch id="103" value="-1" recover_flag="0"/>
- <switch id="107" value="1" recover_flag="0"/>
- <switch id="115" value="255" recover_flag="0"/>
- <switch id="120" value="1" recover_flag="0"/>
- </proxy>
- <proxy id="603">
- <switch id="101" value="-1" recover_flag="0"/>
- <switch id="102" value="1000" recover_flag="0"/>
- <switch id="103" value="-1" recover_flag="0"/>
- <switch id="107" value="-1" recover_flag="0"/>
- <switch id="115" value="25" recover_flag="0"/>
- <switch id="120" value="-1" recover_flag="0"/>
- </proxy>
- </switch_proxy>
通过上一步我们查看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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。