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

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

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

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

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

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

最佳答案

getevent获得的X和Y坐标与从开发人员选项中的指针位置获得的X和Y坐标不同。它们使用公式进行映射。

displayX = (x - minX) * displayWidth / (maxX - minX + 1)
displayY = (y - minY) * displayHeight / (maxY - minY + 1)


资料来源:Touch Devices

关于android - GetEvent和指针位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24062545/

10-10 23:33