我想以最快的方式在android设备上模拟触摸。 我认为最快的是低级别(事件)。 我尝试使用“外壳输入水龙头”,但是速度太慢。
为此,我做了:
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")
它现在正在工作,因为我看不到任何触摸! 你能帮助我吗?
答案 0 :(得分:0)
使用getevent
记录事件时,它将以十六进制表示形式提供输出,因此您需要将它们转换为十进制值。在python中,您可以使用int('string', 16)
将字符串从十六进制转换为十进制。