我想以最快的方式在 Android 设备中模拟触摸。 我认为最快的是低级别(sendevents)。 我尝试过“shell input tap”,但速度太慢。
为了做到这一点,我做了:
adb shell getevent
我已经复制了触摸事件的输出:
/dev/input/event1: 0003 0039 00000867
/dev/input/event1: 0003 0035 00000095
/dev/input/event1: 0003 0036 00000233
/dev/input/event1: 0001 014a 00000001
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0003 0039 ffffffff
/dev/input/event1: 0001 014a 00000000
/dev/input/event1: 0000 0000 00000000
之后我做了一个简单的Python脚本来运行发送这个sendevents。
def sendevent (device,event):
command = "adb -s " + device + " shell sendevent /dev/input/event1 " + event
print (command)
os.popen(command)
def touch_position():
sendevent("fbc690357d04","0003 0039 00000867")
sendevent("fbc690357d04","0003 0035 00000095")
sendevent("fbc690357d04","0003 0036 00000233")
sendevent("fbc690357d04","0001 014a 000000010")
sendevent("fbc690357d04","0000 0000 00000000")
sendevent("fbc690357d04","0003 0039 ffffffff")
sendevent("fbc690357d04","0001 014a 00000000")
sendevent("fbc690357d04","0000 0000 00000000")
它现在正在工作,因为我看不到任何触摸! 你能帮助我吗?
最佳答案
当您使用getevent
记录事件时,它将以十六进制表示形式输出,因此您需要将它们转换为十进制值。在Python中,您可以使用int('string', 16)
将十六进制字符串转换为十进制。
关于android - adb sendevent 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51181941/