亚行sendevent不起作用

时间:2018-07-05 00:07:39

标签: android debugging adb

我想以最快的方式在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")

它现在正在工作,因为我看不到任何触摸! 你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

使用getevent记录事件时,它将以十六进制表示形式提供输出,因此您需要将它们转换为十进制值。在python中,您可以使用int('string', 16)将字符串从十六进制转换为十进制。