Auto.js 九宫格解锁、密码解锁

适用于Auto.js、AutoX.js

效果

步骤:

  1. 亮屏
  2. 呼出解锁UI
  3. 解锁
  • 亮屏:

//唤醒设备。包括唤醒设备CPU、屏幕等。可以用来点亮屏幕。
device.wakeUp()
  • 呼出解锁UI:

亮屏后模拟向上滑动,进入到输入密码或者九宫格解锁页面

注意:小米手机:swipe滑动时间取201-230,如200,300等值无法滑动出解锁页面

/*
滑出密码UI
从距离手机屏幕底部1/5处滑动到距离手机屏幕顶部1/5处
*/
swipe(200, device.height / 5 * 4, 400, device.height / 5, 201)

/*
接口解析
swipe(x1, y1, x2, y2, duration)
x1 {number} 滑动的起始坐标的x值
y1 {number} 滑动的起始坐标的y值
x2 {number} 滑动的结束坐标的x值
y2 {number} 滑动的结束坐标的y值
duration {number} 滑动时长,单位毫秒
模拟从坐标(x1, y1)滑动到坐标(x2, y2),并返回是否成功。只有滑动操作执行完成时脚本才会继续执行。

一般而言,只有滑动过程中被其他事件中断才会滑动失败。
*/
  • 解锁

1.密码解锁

按密码顺序点击数字按钮输入密码即可解锁

/**
 * 数字密码解锁
 */
function unlockNumber() {
    var password = data.pwd  //手机密码

    //循环点击数字
    for (var i = 0; i < password.length; i++) {
        var p = text(password[i].toString()).findOne();
        p.click();
        sleep(100);
    }

    toastLog("解锁")
}
2.九宫格解锁

获取九宫格全部9个点的坐标,再根据滑动顺序利用滑动函数依次滑动,即可解锁。

但是9个点的坐标无法获取,不同型号手机的位置也可能不同。那么可以把九宫格中9个点的坐标保存到配置文件,使用时读配置文件中的坐标。

优化一下,只保存1(左上角)和9(右下角)两个点,使用时根据这两个坐标计算出全部9个点的坐标。

如何获取手机上某一点的具体坐标:

进入手机设置-开发者选项-指针位置,置为开启状态

可以看到下图中最上面出现了一排坐标显示,这时候点击屏幕就会显示点击的位置了,在锁屏界面点击1和9,并记录坐标。

 有了9个点的坐标,通过滑动函数即可解锁

/*
gesture(duration, [x1, y1], [x2, y2], ...)
duration {number} 手势的时长
[x, y] ... 手势滑动路径的一系列坐标
模拟手势操作。例如gesture(1000, [0, 0], [500, 500], [500, 1000])为模拟一个从(0, 0)到(500, 500)到(500, 100)的手势操作,时长为2秒。
*/

 首先计算9个点的坐标

//1和9用于定位九宫格位置
    var one = data.one
    var nine = data.nine

    var xStart = one[0]
    var xEnd = nine[0]

    var yStart = one[1]
    var yEnd = nine[1]

    var dx = (xEnd - xStart) / 2
    var dy = (yEnd - yStart) / 2

    var pwdPoints = []

    //计算出9个点的坐标
    for (let index = 0; index < 9; index++) {
        pwdPoints.push([xStart + index % 3 * dx, yStart + parseInt(index / 3) * dy])
    }

然后将滑动顺序对应的密码生成坐标数组。

//根据解锁密码按顺序构造路径点数组
    var pwdArray = []
    for (var i = 0; i < data.pwd.length; i++) {
        pwdArray.push(pwdPoints[parseInt(data.pwd[i].toString()) - 1])
    }

调用滑动函数,在2秒内滑动经过所有点,完成解锁。

//滑动解锁
    gesture(2000, pwdArray)

 完整项目:Github

脚本交流QQ频道:hrit3j3np5

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值