4

我目前正在尝试通过sendeventadb shell 的命令生成一个复杂的手势。为了重放一个手势,我通过geteventadb 的方法记录了事件。这是一个简单的点击我的 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 上做同样的事情时,这不会发生。

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

4

1 回答 1

4

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

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

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

并查看max

于 2015-01-29T14:28:52.873 回答