【问题标题】:adb sendevent not working亚行发送事件不工作
【发布时间】:2018-07-05 00:07:38
【问题描述】:

我想以最快的方式在安卓设备中模拟触摸。 我认为最快的是低级别(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")

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

【问题讨论】:

标签: android debugging adb


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2015-10-24
    • 2019-10-27
    • 2021-08-05
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多