手势动作
$act是一个高度封装的框架,其中集成了无障碍、$root、$szk触摸方案,优先级为:$root>$szk>无障碍
$act中所有click、press、move函数都会优先判断是否有ROOT权限,如果有,则使用$root进行点击;之后判断是否有Shizuku权限,如果有,则使用$szk进行手势操作;之后判断是否有无障碍权限,如果有,则使用无障碍执行。
无障碍服务是否开启
判断无障碍服务是否开启,如果开启了则返回true,否则返回false。
返回 : {boolean} 是否开启
版本 : 1.0.0
获得无障碍服务
如果有Root权限:则使用Root权限为本应用授权永久无障碍
如果有Shizuku权限:则使用Shizuku权限为本应用授权永久无障碍
如果没有Root和Shizuku:则进行普通权限申请(非永久有效,受系统限制)
该函数是一个阻塞式函数,请勿放在ui线程当中操作,如果你想在ui状态下申请无障碍,建议使用$permit.wza()函数。
注意:永久无障碍其实是每次启动软件时,会自动自我授权无障碍,它不会立即获得无障碍权限,一般需要等待1-5秒的时间,不过这些操作都会在应用后台进行操作,因此用户并不会感知到这一操作,只会莫名其妙的觉得自己开启的无障碍权限从未关闭过一样。 在授权无障碍期间,你最好还是使用 $act.hasPermit() 判断无障碍权限是否可用。
返回 : {boolean} 是否获得
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势; 如果Shizuku可用,优先使用Shizuku执行手势; 如果无障碍可用,使用无障碍执行手势; 如果以上都不可用,将无任何效果;
参数 : x {int} 点击位置x
参数 : y {int} 点击位置y
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : x {int} 点击位置x
参数 : y {int} 点击位置y
参数 : dur {int} 点击后延迟
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : x {int} 点击位置x
参数 : y {int} 点击位置y
参数 : dur {int} 点击后延迟
参数 : delay {int} 点击前延迟
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {int[]} 点击位置
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {int[]} 点击位置
参数 : dur {int} 点击后延迟
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {int[]} 点击位置
参数 : dur {int} 点击后延迟
参数 : delay {int} 点击前延迟
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {Point} 点击位置
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {Point} 点击位置
参数 : dur {int} 点击后延迟
版本 : 1.0.0
点击
如果Root可用,优先使用Root执行手势 如果Shizuku可用,优先使用Shizuku执行手势 如果无障碍可用,使用无障碍执行手势 如果以上都不可用,将无任何效果
参数 : index {Point} 点击位置
参数 : dur {int} 点击后延迟
参数 : delay {int} 点击前延迟
版本 : 1.0.0
点击节点
如果节点支持点击,就是用节点本身的点击行为进行点击,如果不支持,则通过$act的坐标方式来点击节点的坐标位置。
参数 : node {Node} 点击位置
版本 : 1.0.0
点击节点
如果节点支持点击,就是用节点本身的点击行为进行点击,如果不支持,则通过$act的坐标方式来点击节点的坐标位置。
参数 : node {Node} 点击位置
参数 : useAct {boolean} 是否使用无障碍点击
版本 : 1.0.0
长按节点
如果节点支持点击,就是用节点本身的点击行为进行长按,如果不支持,则通过$act的坐标方式来点击节点的坐标位置。
参数 : node {Node} 节点
版本 : 1.0.0
长按节点
如果设备获得了root,将优先使用root来执行手势,如果没有root,则使用无障碍来执行手势
参数 : node {Node} 节点
参数 : useAct {boolean} 是否使用act点击
版本 : 1.0.0
长按
参数 : x {int} 长按位置x
参数 : y {int} 长按位置y
版本 : 1.0.0
长按
参数 : x {int} 长按位置x
参数 : y {int} 长按位置y
参数 : dur {int} 长按后延迟
版本 : 1.0.0
长按
参数 : x {int} 长按位置x
参数 : y {int} 长按位置y
参数 : dur {int} 长按后延迟
参数 : delay {int} 长按前延迟
版本 : 1.0.0
模拟人手滑动
参数 : startX {int} 起点x(必填)
参数 : startY {int} 起点y(必填)
参数 : endX {int} 终点x(必填)
参数 : endY {int} 终点y(必填)
参数 : duration {int} 持续时间(可为空:默认:1秒)
版本 : 1.7.8
滑动
参数 : x1 {int} 起点x
参数 : y1 {int} 起点y
参数 : x2 {int} 终点x
参数 : y2 {int} 终点y
版本 : 1.0.0
滑动
参数 : x1 {int} 起点x
参数 : y1 {int} 起点y
参数 : x2 {int} 终点x
参数 : y2 {int} 终点y
参数 : dur {int} 滑动延迟
版本 : 1.0.0
滑动
参数 : x1 {int} 起点x
参数 : y1 {int} 起点y
参数 : x2 {int} 终点x
参数 : y2 {int} 终点y
参数 : dur {int} 滑动时间
参数 : delay {int} 滑动延迟
版本 : 1.0.0
滑动节点
仅无障碍可用
参数 : node {Node} 节点
参数 : dir {String} 方向(up|down|left|right)
版本 : 1.0.0
滑动
参数 : node {Node} 节点
参数 : x2 {int} 终点x
参数 : y2 {int} 终点y
参数 : dur {int} 滑动时间
版本 : 1.0.0
滑动
参数 : node {Node} 节点
参数 : x2 {int} 终点x
参数 : y2 {int} 终点y
参数 : dur {int} 滑动时间
参数 : delay {int} 滑动延迟
版本 : 1.0.0
多指手势
参数 : gesture {int[]} 动作数据数组[起点x,起点y,终点x,终点y,开始时间,时长]
版本 : 1.0.0
双指手势
参数 : gesture1 {int[]} 动作数据数组[起点x,起点y,终点x,终点y,开始时间,时长]
参数 : gesture2 {int[]} 动作数据数组[起点x,起点y,终点x,终点y,开始时间,时长]
版本 : 1.0.0
三指动作
参数 : gesture1 {int[]} 动作数据数组
参数 : gesture2 {int[]} 动作数据数组
参数 : gesture3 {int[]} 动作数据数组
版本 : 1.0.0
四指动作
参数 : gesture1 {int[]} 动作数据数组
参数 : gesture2 {int[]} 动作数据数组
参数 : gesture3 {int[]} 动作数据数组
版本 : 1.0.0
通过路径来构建path对象(默认持续时间为1秒)
参数 : paths {[][]} 动作数据数组
返回 : {Path}
版本 : 1.0.0
通过路径来构建path对象
参数 : paths {[][]} 动作数据数组
参数 : dur {int} 持续
返回 : {AgPath} 路径对象
版本 : 1.0.0
通过路径来构建path对象
参数 : paths {[][]} 动作数据数组
参数 : delay {int} 开始时间
参数 : dur {int} 延迟
返回 : {Path}
版本 : 1.0.0
执行路径
参数 : paths {AgPath...} 多路径
版本 : 1.0.0
构建一个路径并且执行(默认时间为1秒)
参数 : paths {int[][]} 动作数据数组
版本 : 1.0.0
构建一个路径并且执行
参数 : paths {int[][]} 动作数据数组
参数 : dur {int} 延迟
版本 : 1.0.0
构建一个路径并且执行
参数 : paths {int[][]} 动作数据数组
参数 : startTime {int} 开始时间
参数 : dur {int} 延迟
版本 : 1.0.0
点击home键
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
返回
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
返回
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
近期任务
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
长按电源
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
锁屏
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
唤醒屏幕
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
版本 : 1.0.0
分屏
版本 : 1.0.0
设置
版本 : 1.0.0
通知
版本 : 1.0.0
截屏
唤起手机自带的截屏操作
版本 : 1.0.0
粘贴到文本框
如果有root则优先使用root执行 如果有Shizuku则优先使用shizuku执行 如果有无障碍则优先使用无障碍执行 如果以上都没有,则无效果
参数 : text {String} 需要输入的文字
版本 : 1.0.0
粘贴到文本框
无障碍专属的函数
参数 : node {AccessibilityNodeInfo} 指定节点
参数 : text {String} 需要输入的文字
版本 : 1.0.0
粘贴到文本框
无障碍专属的函数
参数 : node {Node} 指定节点
参数 : text {String} 需要输入的文字
版本 : 1.0.0
获得activity类名
返回 : activity类名
版本 : 1.0.0
设置窗口变化监听
参数 : callback {(name)=>{}} 回调
版本 : 1.0.0
创建一个ui选择器
返回 : {UiSelector} UI选择器
版本 : 1.0.0
设置开发环境的密度
注意:此函数用于全分辨率适配,需要配合 $act.setAdapt(true) 来使用。
测试API:此方法后续可能会被删除
参数 : density {float} 密度因子
版本 : 1.0.0
是否启动分辨率适配
我将根据屏幕密度来等比例计算出坐标的位置。
测试API:此方法后续可能会被删除
参数 : usable {boolean} 启用分辨率适配
版本 : 1.0.0
判断$act是否只使用无障碍服务
返回 : {boolean} 是否只使用无障碍服务
设置$act只使用无障碍服务
在本应用中$act是一个高度封装的框架,很多动作都会优先判断是否有$root和$szk,如果有root则优先使用root来执行手势,如果有szk(Shizuku)则优先使用Shizuku执行手势,如果$touch可用,则使用$touch执行手势。
正因为$act是一个高度封装的框架,导致运行速度会比较慢,毕竟内部的执行逻辑稍微复杂一些。
然而有时候我们不需要用到$root、$szk、$touch来执行操作,故设计了这个函数,用来配置$act是否只使用无障碍来进行操作,以加快运行速度。
参数 : onlyAcc {boolean} 是否只使用无障碍进行操作
版本 : 1.4.3
设置抖动值
$act允许用户配置抖动值(默认是0),以实现随机点击,而抖动值其实就是随机值的范围,例如:点击坐标 X=10,抖动值为5时,实际上点击的位置将可能是 X=5到15之间。 假设:点击 X=5,抖动值设置为10,则实际上 X抖动之后在0-15之间(而不是-5到15之间),我要告诉你:抖动之后的坐标不会小于0。
不过我需要提醒:我并不会判断你的坐标在抖动之后是否处于屏幕的外部,因此,你需要合理的设置抖动值。
参数 : jitter {int} 抖动值
版本 : 1.4.3
启用$root
$act是一个高度封装的框架,很多动作都会判断是否有$root,如果有$root则优先使用$root来执行手势。
默认情况下,$root是启用的,你可以通过此函数来禁用$root。
参数 : enableRoot {boolean} 是否启用$root
版本 : 1.4.7
判断$root是否启用
返回 : {boolean} 是否启用$root
版本 : 1.4.7
启用$szk
$act是一个高度封装的框架,很多动作都会判断是否有$szk,如果有$szk则优先使用$szk来执行手势。
默认情况下,$szk是启用的,你可以通过此函数来禁用$szk。
参数 : enableSzk {boolean} 是否启用$szk
判断$szk是否启用
返回 : {boolean} 是否启用$szk
版本 : 1.4.7