我需要找到 android 模拟器的事件 ID

I need to find the event ID of an android emulator

我正在开发一个模拟器并通过模块 ppadb 控制它。滑动不够精确,我找到了一个脚本来使用 sendevent 但这样做我需要“事件 ID”。

self.device.shell(f'sendevent /dev/input/event{self.eventId} {event}')

有一个名为 getevent 的 shell 命令可以查看它,但我不知道如何在 python 中编写它。我希望在 pycharm 控制台中打印 getevent 结果。

你能帮帮我吗?

您可以在 shell 中 运行 getevent 一次并找出设备名称并在您的 Python 脚本中使用它来执行 sendevent命令。或者您也可以使用 Python 中的 self.device.shell 命令来执行此操作。要找出设备的名称,您可以 运行 在 adb shell 会话中使用此命令:

getevent -pl 2>&1 | sed -n '/^add/{h}/ABS_MT_TOUCH/{x;s/[^/]*//p}'

现在它将 return 类似 /dev/input/event0 的东西,您可以将它与您已经必须将事件发送到该特定设备的命令一起使用。

如果 adb 命令在您的终端中不起作用,您可以导航到 Android SDK 文件夹中的 platform-tools 文件夹,然后从那里 运行 它(在我的情况是,我的模拟器是 event1):