Adb shell getevent 方法 returns Nexus 4 上 X 和 Y 值的两倍

Adb shell getevent method returns twice the value for X and Y on Nexus 4

我目前正在尝试通过 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