android - adb sendevent 不工作

标签 android debugging adb

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

相关文章:

android - 在不创建签名 APK 的情况下测试 Google Play 商店应用内购买

Android Api - 从联系人中获取手机号码

C++ 从命令行附加 Visual Studio 调试器

android - 在不影响用户界面的情况下模拟android上的触摸事件而不影响用户界面(使用root)

android - fire TV stick adb install apk 不起作用

android - 由于Kryonet中重复的类定义,因此无法编译项目

javascript - 错误 "Uncaught SyntaxError: Unexpected end of input"

matlab - 查找对特定内置 MATLAB 函数的间接调用

android - adb connect 连接被拒绝

android - 共享元素转换和 ContentTransition 延迟计时