【发布时间】:2019-05-19 15:47:29
【问题描述】:
"adb shell input touchscreen swipe 500 500 1000 1000" 只画直线
有没有办法一次画出“L”或“N”之类的线?
谢谢
【问题讨论】:
-
你检查我的答案了吗?它对你有用吗?
标签: android input adb swipe touchscreen
"adb shell input touchscreen swipe 500 500 1000 1000" 只画直线
有没有办法一次画出“L”或“N”之类的线?
谢谢
【问题讨论】:
标签: android input adb swipe touchscreen
在对 google 进行了一些研究之后,我得到了一个使用 getevent 和 sendevent 命令的解决方案。
获取事件
使用 get event 命令,您必须记录滑动模式的事件。这可以使用以下命令完成。
adb shell getevent | find "event1"
运行上述命令并在手机中滑动。上面的命令将生成一些事件集。您最好将该数据写入文件,因为会产生 300 到 500 行。
录制完成后,文件将如下所示
/dev/input/event1: 0003 0039 00000099
/dev/input/event1: 0001 014a 00000001
/dev/input/event1: 0001 0145 00000001
/dev/input/event1: 0003 0035 000001a0
/dev/input/event1: 0003 0036 00000655
/dev/input/event1: 0003 0030 00000005
/dev/input/event1: 0003 0031 00000005
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0003 0035 000001a1
/dev/input/event1: 0003 0030 00000006
-------------------------------------
-------------------------------------
在上面的文件中,最后两列是十六进制格式。您需要将它们转换为十进制格式。您可以编写一些实用工具将它们转换为十进制格式。将它们转换为十进制格式后,现在您必须使用 sendevent 命令
发送事件 现在使用 sendevent 构造以下命令。
adb shell sendevent /dev/input/event1 0003 57 153
adb shell sendevent /dev/input/event1 0001 330 1
adb shell sendevent /dev/input/event1 0001 325 1
adb shell sendevent /dev/input/event1 0003 53 416
adb shell sendevent /dev/input/event1 0003 54 1621
adb shell sendevent /dev/input/event1 0003 48 5
adb shell sendevent /dev/input/event1 0003 49 5
adb shell sendevent /dev/input/event1 0000 0 0
adb shell sendevent /dev/input/event1 0003 53 417
adb shell sendevent /dev/input/event1 0003 48 6
-----------------------------------------------
-----------------------------------------------
如果您看到最后 3 列,则第一列与 getevet 列相同,最后两列是十进制等效于 getevent 后 2 列。
现在,如果您在批处理文件中运行上述命令,记录的图案将绘制在屏幕上。
【讨论】: