牙叔教程 简单易懂
前提
使用shizuku激活autojs, 使autojs有adb权限, 或者手机root
代码
let 按下 = `0003 003a 00000001
0003 0035 000001F4
0003 0036 000003E8
0000 0002 00000000
0001 014a 00000001
0000 0000 00000000`;
let 抬起 = `0003 0035 000001F4
0003 0036 000003E8
0000 0002 00000000
0001 014a 00000000
0000 0000 00000000`;
let lines = 按下 + "\n" + 抬起;
let adbCheck = $shell.checkAccess("adb");
if (!adbCheck) {
console.log("没有adb权限, 请先使用shizuku激活autojs的adb权限");
exit();
} else {
console.log("已有adb权限");
}
$shell.setDefaultOptions({ adb: true });
/* -------------------------------------------------------------------------- */
lines = lines.split("\n");
var len = lines.length;
let cmds = [];
for (var i = 0; i < len; i++) {
let line = lines[i];
line = line.replace(/.*event5: /, "");
let arr = line.split(" ");
let type = arr[0];
let code = arr[1];
let value = arr[2];
// 转十进制
type = parseInt(type, 16);
code = parseInt(code, 16);
value = parseInt(value, 16);
let cmd = "sendevent /dev/input/event5 " + type + " " + code + " " + value;
cmds.push(cmd);
}
// 一次性执行多条命令
let res = cmds.join(" && ");
log(cmds.join("\n"));
$shell(res);
log("111");
按下事件
let 按下 = `0003 003a 00000001
0003 0035 000001F4
0003 0036 000003E8
0000 0002 00000000
0001 014a 00000001
0000 0000 00000000`;
一共六行
- 手指压力
- x坐标
- y坐标
- 一个点的信息的结尾
- 按下
- 一次事件的结尾
第一行
0003 003a 00000001
- 0003 表示这是一个abs事件, 也就是触摸的坐标事件,
- 003a 表示触摸事件中的 ABS_MT_PRESSURE(手指压力) 指令
- 00000001 表示手指压力大小的值
三个字段的排序是
- 事件名
- 键
- 值
抬起事件
0003 0035 000001F4
0003 0036 000003E8
0000 0002 00000000
0001 014a 00000000
0000 0000 00000000
一共五行
- x坐标
- y坐标
- 一个点的信息的结尾
- 按下
- 一次事件的结尾
环境
设备: 小米11pro
Android版本: 12
雷电模拟器:9.0.17
Android版本: 9
Autojs版本: 9.2.13
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程
声明
部分内容来自网络 本教程仅用于学习, 禁止用于其他用途