我正在寻找一种将多点触控手势注入Android的方法。到目前为止,我打开/ dev / uinput并写入文件描述符。该解决方案适用于“一次”触摸。如何注入多点触控输入?
答案 0 :(得分:4)
根据我的经验,触摸手势的/dev/uinput
将变得艰难。我实现了单点触控,仅适用于某些设备。在其他方面,它只会产生“悬停”的效果。
然后我使用了android的触摸设备/dev/input/eventX
(如果你有root权限,你可以使用它)。查看触摸输入如何工作的最佳方法是在设备上使用getevent /dev/input/eventX
二进制文件。 linux multitouch protocol输入非常好地描述了多点触控功能和行为,并且在您解读十六进制代码(并将它们转换为更有意义的内容,如{{1 }})。
简而言之:
getevent
设备是触摸输入设备。它是一个注册ABS_MT_ *事件的设备。您可以使用ABS_MT_POSITION_X
命令(在/dev/input/eventX
中运行)getevent -il
。 adb shell
发出/dev/input/event2
命令并触摸屏幕。getevent /dev/input/event2
,此为adb shell
)EV_ABS
为0003
对于instace,ABS_MT_SLOT
的注释输出为双击:
0x002f
答案 1 :(得分:2)
您可以在Google代码上使用事件注入器库:http://code.google.com/p/android-event-injector/,为触摸屏设置偶数显示器,并准确查看为多点触控事件发送/使用的消息。
然后,您可以使用正确的参数简单地重现这些消息。
答案 2 :(得分:0)
不确定这是否可行但是(我假设您是从应用程序执行此操作)您可以拥有一系列同时运行的AsyncTasks(并写入/ dev / uinput)来模拟同时触摸