获取事件和指针位置

Nar*_*mar 1 android touch adb

我试图通过开发人员选项中的指针位置选项获取触摸的 (x, y) 坐标,我使用这些坐标使用 sendevent 在屏幕上点击。这是我执行 sendevent 的脚本。

点击.sh sendevent /dev/input/event0 3 57 2421 sendevent /dev/input/event0 3 58 232 sendevent /dev/input/event0 3 53 $1 sendevent /dev/input/event0 3 54 $2 sendevent /dev/input/event0 0 0 0 sendevent /dev/input/event0 3 57 4294967295 sendevent /dev/input/event0 0 0 0

我从 adb shell 调用脚本,sh tap.sh <x> <y>但它没有点击正确的坐标。相反,它是在不同的位置敲击。

同样,当我点击屏幕并在 getevent 中检查结果时adb shell getevent。我发现在指针位置和 getevent 上显示的坐标是不同的。

为什么它们不同,我该如何解决这个问题?

PS:我试过的设备是 Nexus 7、Nexus 10。

Nar*_*mar 6

getevent得到的X、Y坐标和开发者选项中从指针位置得到的坐标是不一样的。它们使用公式进行映射。

displayX = (x - minX) * displayWidth / (maxX - minX + 1)
displayY = (y - minY) * displayHeight / (maxY - minY + 1)
Run Code Online (Sandbox Code Playgroud)

来源:触控设备