chensure 发表于 2020-3-13 14:51

【tasker】【笔记】利用shell判断屏幕状态(是否点亮)

本帖最后由 chensure 于 2020-3-16 17:38 编辑

前言:最近宅家没事,一直在想方设法偷懒,想让手机自己干活,但是屏幕解锁这块,虽然能曲线救国,但是一直不如意。最后,查了好久相关信息,以shell为突破口,解决问题。
设备:小米9 (已经root)

2.运行shell命令,并把值储存到 %pingmu
dumpsys window policy




用这个命令,更直接   dumpsys window policy | grep "screenState"

    (这条指令是在网上参考的,图如下)


分析----根据笨办法对比“关屏幕”和“亮屏幕”获取到的2个 %pingmu 值得,发现里面有好几个差异的地方。我选择了screenState的值作为判断


3.把变量 %pingmu 按照 “空格”进行分离,获取到关键字符串 screenState=SCREEN_STATE_OFF(关屏幕),tasker自动把这个字符串存在了%pingmu58(我是从%pingmu1测试到%pingmu58才知道的)

4..if条件判断,如果 %pingmu58 ~(匹配) screenState=SCREEN_STATE_OFF,则执行 解锁任务

4.1 运行shell命令root(按电源键)
    input keyevent 26

4.2 运行shell命令root(上滑),input swipe x1 y1 x2 y2 毫秒
    input swipe 535 1740 535 1200 300

4.3 运行shell命令root(输入数字密码-四个2),input tap x y
   input tap 540 1562
   input tap 540 1562
   input tap 540 1562
   input tap 540 1562
5.end if


附上全家福


最后,在处理变量分离,得到 关键字符串 screenState=SCREEN_STATE_OFF(关屏幕)这个步骤,有点繁琐,而且处理有点慢,我用了匹配正则,好像也不行,不知道为什么,有更好解决方法的朋友,还请赐教。谢谢

对了,图太大了,怎么把图变小一点?或者排版好看点

隔壁你王叔 发表于 2020-4-21 13:14

本帖最后由 隔壁你王叔 于 2020-4-21 13:17 编辑

tasker里面内建的变量%SCREEN~on&off就能直接判断屏幕状态,直接if 判断屏幕是否关闭,如果%SCREEN~off,直接用input keyevent 3模拟按下电源键,然后直接input keyevent 62模拟按下空格键就可以完成上滑,密码好像也可以直接输入不用模拟点击

chensure 发表于 2020-4-21 18:38

隔壁你王叔 发表于 2020-4-21 13:14
tasker里面内建的变量%SCREEN~on&off就能直接判断屏幕状态,直接if 判断屏幕是否关闭,如果%SCREEN~off,直 ...

好的。谢谢。我去测试一下

yufei8051 发表于 2020-5-17 00:20

楼上说的都对,有函数直接调用的

疼逊技术员 发表于 2020-8-13 13:47

感谢你,谢谢大神榜

mianning1 发表于 2020-12-31 20:59

隔壁你王叔 发表于 2020-4-21 13:14
tasker里面内建的变量%SCREEN~on&off就能直接判断屏幕状态,直接if 判断屏幕是否关闭,如果%SCREEN~off,直 ...

大神,请教我在亮屏的状态下可以定时运行autojs的脚本,一旦息屏,可以定时打开屏幕,但就是不执行autojs脚本,请教怎么办

pcwx888 发表于 2021-3-24 08:50

怎么这么复杂。

用Auto.js脚本解锁屏幕,简单方便。

tasker定时运行Auto.js脚本

auto(); // 自动打开无障碍服务
/*判断屏幕锁定,解锁屏幕(数字密码)*/


if (!device.isScreenOn()) {//息屏状态将屏幕唤醒
    device.wakeUp();//唤醒设备
    sleep(1000); // 等待屏幕亮起
    //从左划到右,唤出密码输入123456
    swipe(30,1000, 500, 900, 600);
    sleep(400);
    desc(1).findOne().click();
    desc(2).findOne().click();
    desc(3).findOne().click();
    desc(4).findOne().click();
    desc(5).findOne().click();
    desc(6).findOne().click();
}

chensure 发表于 2021-3-27 12:27

pcwx888 发表于 2021-3-24 08:50
怎么这么复杂。

用Auto.js脚本解锁屏幕,简单方便。


非常感谢。。我现在也是auto.js结合一起用
你用
desc(6).findOne().click();
我用
click(坐标)

还是你的比较好。不需要找坐标,直接识别6

chensure 发表于 2021-3-27 12:41

pcwx888 发表于 2021-3-24 08:50
怎么这么复杂。

用Auto.js脚本解锁屏幕,简单方便。


现在升级了最新版,配合MIUI12.5

发现keyCode(26)竟然不会关屏幕

xiaobaikan 发表于 2021-11-17 10:31

已经收藏,谢谢分享
页: [1] 2
查看完整版本: 【tasker】【笔记】利用shell判断屏幕状态(是否点亮)