我有一个脚本,可将adb shell getevent -t
命令的输出解析为更多抽象事件(例如Type: LONG_CLICK, Location: (x, y)
)。我使用此解析后的输出来重播使用AirTest手机游戏测试框架在adb
命令期间发生的事件,主要是使用其Android api。一个示例是运行AirTest命令touch((x,y))
,但是,AirTest touch
命令考虑了设备的方向,而adb shell getevent -t
没有考虑。这导致两个坐标系之间的不匹配和不希望的行为。我想知道是否有一种方法可以使adb
命令根据设备的方向给出相对坐标,或者是否有办法使AirTest忽略设备的方向。我已经浏览了[getevent][1]
的{{1}}命令中的android文档,但没有讨论任何可以做到这一点的标志。我也经历过AirTests documentation,并且没有非hacky的方式来做到这一点。我发现的hacky方法是进入库的源代码,并根据方向注释掉执行翻译的部分,但是,这是不希望的,因为必须更改库的源代码才能获得这种行为。
答案 0 :(得分:0)
弄清楚了。在执行触摸命令之前,我可以直接更改AirTest认为的方向:
android = api.device()
android._display_info["orientation"] = 0.0
将方向值设置为0.0,它使用与adb shell getevent -t
相同的坐标系