我试图通过开发人员选项中的指针位置选项获取触摸的(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/