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