吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8806|回复: 10
收起左侧

[其他转载] 【tasker】【笔记】利用shell判断屏幕状态(是否点亮)

[复制链接]
chensure 发表于 2020-3-13 14:51
本帖最后由 chensure 于 2020-3-16 17:38 编辑

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

2.运行shell命令,并把值储存到 %pingmu
  
[Shell] 纯文本查看 复制代码
 dumpsys window policy





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

shell-dumpsys

shell-dumpsys

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

dumpsys window policy

 dumpsys window policy


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

文件对比

文件对比


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

变量分离

变量分离

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

正则

正则

4.1 运行shell命令root(按电源键)
     
[Shell] 纯文本查看 复制代码
 input keyevent 26 

电源键

电源键

4.2 运行shell命令root(上滑),input swipe x1 y1 x2 y2 毫秒
     
[Shell] 纯文本查看 复制代码
 input swipe 535 1740 535 1200 300

滑动

滑动

4.3 运行shell命令root(输入数字密码-四个2),input tap x y
[Shell] 纯文本查看 复制代码
     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
已经收藏,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表