fix(屏幕): 一键息屏不再唤醒已眠设备 + 「保持亮屏」对不充电的设备生效
用户反馈两条: 1. 监控页「一键息屏」像是把设备**唤醒**了(按钮行为"反"); 2. 任务里的「保持亮屏」没用。 根因: 1. `POST /api/device/screen_all` 的 off 分支发 `input keyevent 26`(KEYCODE_POWER)—— 那是电源键**开关**:对亮着的设备是熄屏,对**已经息屏的设备反而是唤醒**。 2. `keep_screen` 只发 `svc power stayon true`,它管的是「**充电时**屏幕常亮」 (stay_on_while_plugged_in)。设备走 WiFi 跑任务、没插充电器 → 完全不生效。 修法: - 息屏改用 `KEYCODE_SLEEP(223)`(单向:只熄不亮)。 - 保持亮屏改成把系统**息屏超时**顶到最大(`settings put system screen_off_timeout 2147483647`)+ 顺带 `svc power stayon true` + 立刻 `KEYCODE_WAKEUP` 唤醒一次; `mode=off` 时写回原值(进入时读一次记在内存;进程重启丢了记录就写回 10 分钟兜底, `settings get` 返回 "null" 的机型也走兜底)。 - 文案/文档同步:编辑器里的步骤说明、TASK_DEV 步骤表、API.md 的接口行为。 自测(按用户要求不动机器):py_compile / node --check 通过;用假设备对象断言命令序列—— 保持亮屏发 `settings get` → `stayon true` → `put …2147483647` → `keyevent 224` 并记住原值; 恢复写回原值 60000 且清空备份;原值为 null 时兜底 600000。
This commit is contained in:
@@ -291,7 +291,7 @@ var _stepEditor={
|
||||
h+='<div class="help">息屏。任务结束后用,避免长时间亮屏导致烧屏/发热</div>';
|
||||
}else if(step.type==='keep_screen'){
|
||||
h+='<div class="form-group"><label>模式</label><select class="form-control" data-key="mode">'+
|
||||
'<option value="on"'+(p.mode!=='off'?' selected':'')+'>保持亮屏(充电时屏幕常亮)</option>'+
|
||||
'<option value="on"'+(p.mode!=='off'?' selected':'')+'>保持亮屏(把系统息屏超时顶到最大,不充电也不会黑屏)</option>'+
|
||||
'<option value="off"'+(p.mode==='off'?' selected':'')+'>恢复自动息屏</option></select></div>';
|
||||
h+='<div class="help">长任务(如养号看视频几小时)放"保持亮屏"防屏幕超时熄灭;任务结束前放"恢复自动息屏"</div>';
|
||||
}else if(step.type==='swipe'){
|
||||
|
||||
Reference in New Issue
Block a user