- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在寻找一种将多点触控手势注入(inject) Android 的方法。到目前为止,我打开/dev/uinput 并写入文件描述符。此解决方案适用于“一次”触摸。如何注入(inject)多点触控输入?
最佳答案
根据我的经验,触摸手势的 /dev/uinput
会很困难。我实现了单点触控,它只在某些设备上有效。在其他人身上,它只会产生“悬停”的效果。
然后我使用了 android 的触摸设备 /dev/input/eventX
(如果你有 root 访问权限,你可以)。查看触摸输入如何工作的最佳方法是在设备本身上使用 getevent/dev/input/eventX
二进制文件。 linux multitouch protocol input 很好地描述了多点触控功能和行为,并为您破译十六进制代码(并将它们转换为更有意义的内容,如 ABS_MT_POSITION_X
).
简而言之:
/dev/input/eventX
设备是触摸输入设备。它是一个注册了 ABS_MT_* 事件的设备。您可以使用 getevent -il
命令查看此信息(在 adb shell
中运行)/dev/input/event2
。 adb shell
发出 getevent/dev/input/event2
命令并触摸屏幕。EV_ABS
,这是 0003
)ABS_MT_SLOT
,这是 0x002f
例如,双击 getevent/dev/input/event2
的注释输出:
0003 002f 00000001 // slot 1 (finger 1)
0003 0039 000019fe // tracking id for slot 1
0003 0035 00000146 // position x
0003 0036 00000117 // position y
0003 0030 00000033 // touch area
0000 0000 00000000 // sync
0003 002f 00000000 // slot 0 (finger 0)
0003 0039 000019ff // tracking id for slot 0
0003 0035 000000cb // position x
0003 0036 00000164 // position y
0003 0030 00000028 // touch area
0000 0000 00000000 // sync
0003 0039 ffffffff // relese finger 0
0000 0000 00000000 // sync
0003 002f 00000001 // slot 1
0003 0039 ffffffff // release finger 1
0000 0000 00000000 // sync
关于android - 通过/dev/uinput 在 Android 中注入(inject)多点触控手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14123379/
我正在尝试编写触摸事件。我正在使用相机跟踪手部,因此我需要两个指针并且需要显示它们。 这是我尝试过的方法,但它什么也没做: import uinput import time device = uin
我试图在 Raspberry Pi 论坛上问这个问题,但我根本没有收到任何回复。我想我可能会询问过去很有帮助的 StackOverflow 社区的想法。 我正在为使用 bcm2835 库 (GPIO)
我在通过 uinput 设备事件文件模拟鼠标事件时发现了一个问题。 我可以用 'struct input_event' 结构格式为键盘/鼠标事件编写事件,但只有键事件工作正常,鼠标事件不工作 我启用了
我非常努力地寻找 uinput 的文档,但我唯一找到的是 linux/uinput.h。我还在互联网上找到了一些教程,但根本没有文档! 例如,我想知道 UI_SET_MSCBIT 的作用,但我找不到任
import uinput device = uinput.Device([uinput.KEY_LEFTCTRL, uinput.KEY_LEFTALT, uinput.KEY_T]) device
我试图通过将数据写入/dev/uinput 来控制 Android。例如,如果我在桌面上输入“A”,代码会根据 key_code 向 uinput 写入一些内容,而 Android 应该表现得像我在手
我正在用 python-uinput 做一些测试模拟一些按键,但我找不到动态调用 uinput.emit() 的方法。我的意思是,例如,我想从文件中获取字符并为每个字符调用 uinput.emit()
大家好,感谢阅读。 我正在尝试使用 uinput 界面来执行一些操作。最终,这些数据将通过 UART 从串行连接进行解释。 我可以打开、关闭等 uinput,它适用于单点触控。 EV_KEY BTN_
我尝试在没有触摸屏的安卓设备上注入(inject)事件。我正在使用用户空间输入设备 (uinput) 这样做,但它不起作用。 我正在使用这段代码: fd_virtual_dev = open("/de
我在使用 uinput 使代码的两侧 工作时遇到了一些问题。 基于 Getting started with uinput: the user level input subsystem [死链接;
我想让 uinput 出现在 h1 标签中的 Hello 一词之后。它应该显示他们在上一页中添加的用户名。 va
我已经成功设置了一个小程序来创建一个uinput我计划使用它来自动测试接收键盘输入事件的应用程序。 我关注了both tutorials在这个非常好的answer中找到. 当我的程序通过调用 ioct
我正在为 Android 开发 Synergy 端口(参见 synergy-foss.org)。 我发现注入(inject)击键的唯一方法是使用 Cyanogen Mod 并将击键写入/dev/uin
我正在尝试确保 uinput 正在运行/加载并且它有效。 我无法使用 lsmod 找到设备,但是我可以找到文件/dev/uinput,这是什么意思? 我通过一些谷歌搜索找到了一些代码,这些代码显然是在
我正在尝试使用绝对坐标移动光标。这是代码: #include #includ
我正在尝试使用/dev/uinput 和 ioctl 在 Android 上移动光标鼠标。 这是我的代码: int fd = -1; struct input_event ev; int uinput
我正在尝试在 Debian Stretch 上做一个带有 uinput 的虚拟键盘,我可以输入字符串,比如“Toto!”,键盘会写入这个字符串。但是,我一直坚持从 C char 到键盘处理的键码的转换
目前有什么方法可以在 SBCL 中使用 uinput 内核模块吗?我自己找不到任何图书馆(除了一些日本人 [?] 人的 github:https://github.com/quek/info.read
我正尝试在 Ubuntu 上使用 python 从 PS3 Controller 读取数据,但运气不佳。我从 Willow Garage (http://www.ros.org/wiki/ps3joy
我一直在使用以下 C 代码来尝试在 CentOS 6.0 机器上模拟击键: #include #include #include #include #inlcude #include #i
我是一名优秀的程序员,十分优秀!