我目前正在尝试通过adb shell的sendevent命令生成复杂的手势。为了重播手势,我通过adb的getevent方法记录了事件。这是我的Nexus 4屏幕右下角的一个简单点击示例。

/dev/input/event2: 0003 0039 00000059
/dev/input/event2: 0003 0035 000005ff
/dev/input/event2: 0003 0036 000008e6
/dev/input/event2: 0003 003a 0000002d
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0039 ffffffff
/dev/input/event2: 0000 0000 00000000


转换为十进制值(用于sendevent方法),它使:

/dev/input/event2: 3 57 89
/dev/input/event2: 3 53 1535
/dev/input/event2: 3 54 2278
/dev/input/event2: 3 58 45
/dev/input/event2: 0 0 0
/dev/input/event2: 3 57 -1
/dev/input/event2: 0 0 0


如您所见,X的值(即第2行的53代码)为1535,Y的值(第3行的代码54)为2278。

我的Nexus 4屏幕尺寸只有768 * 1280,这怎么可能?与实际尺寸相比,它似乎要乘以2。。。如果我在Nexus 5上做同样的事情,就不会发生这种情况。

感谢您对此的帮助,这让我发疯了! ^^

最佳答案

这些是input设备(即触摸屏)坐标。触摸屏是一个单独的设备,其分辨率可能与显示屏不同。

要检查触摸屏的分辨率,请执行

getevent -il /dev/input/event2 | grep ABS_MT_POSITION


并查看max

07-28 02:15
查看更多