ADB touchevent不依赖于计算机

时间:2012-10-23 14:34:27

标签: android automation adb

我对亚行有几个问题。

我尝试运行以下批处理文件:

adb wait-for-devices
adb shell sendevent /dev/input/event9 3 53 67 
adb shell sendevent /dev/input/event9 3 54 768
adb shell sendevent /dev/input/event9 3 48 40
adb shell sendevent /dev/input/event9 3 50 4
adb shell sendevent /dev/input/event9 3 57 0
adb shell sendevent /dev/input/event9 0 2 0
adb shell sendevent /dev/input/event9 0 0 0
adb shell sendevent /dev/input/event9 3 53 67
adb shell sendevent /dev/input/event9 3 54 768
adb shell sendevent /dev/input/event9 3 48 0
adb shell sendevent /dev/input/event9 3 50 4
adb shell sendevent /dev/input/event9 3 57 0
adb shell sendevent /dev/input/event9 0 2 0
adb shell sendevent /dev/input/event9 0 0 0

adb shell input keyevent 8
adb shell input keyevent 9
adb shell input keyevent 10
adb shell input keyevent 11
adb shell input keyevent 12

adb shell input keyevent 5
  • 第一部分涉及通过touchevents到达拨号器 (我没有找到关键事件)
  • 第二部分类型1,2,3,4,5 via keyevents
  • 第三部分通过keyevent
  • 按下呼叫按钮

如果我在这台计算机上连接的手机上运行此脚本,那就是touchevents 正确重播并调用12345。 如果我将它连接到另一台PC,第一部分不会将我带到拨号屏幕 出于某种原因?

可能是因为我的代码在一台计算机上而不在另一台计算机上运行?

除了touchevents之外,还有另一种模拟手指扫描的方法吗?

修改

看来,PC上的连接速度有点慢,而且效果不佳。 ADB版本是相同的,实际上我可以通过更改脚本来运行行为。

现在我看到,当我创建touchevents时,例如为了一个彻底的行动。 这些是很多事件。 当我然后使用上面的命令adb shell sendevent逐个输入它们。 我可以在手机上观察到,清扫真的很慢。 有没有办法以某种方式直接将命令传递给adb,即 反应和正常的手指扫描一样快?

3 个答案:

答案 0 :(得分:1)

只需拨打一个号码,您就可以随时使用service call phone 2 s16 "12345"

答案 1 :(得分:1)

同样在最近的Android版本中,您可以使用input tapinput swipe命令

usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input tap <x> <y>
       input swipe <x1> <y1> <x2> <y2>

答案 2 :(得分:-1)

继续shell/ batch scripting to direct commands to adb shell 解决了这个问题。

实际问题是,为每个命令调用adb shell 花了很多时间。

这导致执行滞后,并且由于此时间问题而发生冲突。