【问题标题】:How can i create new virtual mouse device on my android device?如何在我的安卓设备上创建新的虚拟鼠标设备?
【发布时间】:2013-08-17 15:27:45
【问题描述】:

我知道,我可以在 Android/Linux 上收听来自 /dev/input/eventx 的输入设备。如果您是超级用户,您还可以通过它向设备发送事件。

我想以 超级用户 的身份将 鼠标事件 发送到我的 Android 设备。但是,为此,必须通过 USB 或蓝牙连接将鼠标连接到设备。没有它,当在 adb sendevent /dev/input/event8 xxxx xxxx xxxxxxxx 上执行此命令时,我会收到 Could not open /dev/input/event8, No such device 的错误。在这种情况下,尝试使用mknod /dev/input/event8 c 13 71 命令创建节点。

当我将蓝牙或 USB 鼠标连接到设备时,问题得到解决。该设备是在名为 hci0:11/sys/devices/platform/tegra_uart.2/tty/ttyHS2/hci0 下自动创建的,同时创建输入事件/dev/input/event7 (major 13 minor 71)。之后,我可以向该节点发送事件并控制 Android 鼠标光标。但我想在不将鼠标连接到设备的情况下执行此操作。

谁能建议我如何在我的 Android 设备上创建鼠标输入设备(例如连接鼠标时)虚拟

【问题讨论】:

标签: android linux input linux-kernel mouse


【解决方案1】:

据我所知,您应该使用自己的驱动程序创建自己的虚拟设备,幸运的是,使用 uinput

有一种简单的方法可以做到这一点

有一个简单的入门指南here,这个question可以成为编写自己的虚拟驱动程序的好指南。

我认为这只有在您可以访问内核并创建自己的内核时才能做到(我认为修改用户 rom 不是一个好的解决方案),但是在阅读 this 之后,它是清除 Uinput 可以在用户模式下运行。

注意:

我同意使用触摸事件的建议;由于此解决方案更常见且更有意义,请检查第二个建议是 answer

【讨论】:

  • 很好的答案。我想补充一点,一旦程序终止,设备就会消失。我已经能够创建一个输入设备并将输入事件发送到 /dev/input/event* 文件。
  • @LeonvanNoord 谢谢,很高兴我能帮上忙,但是您能更清楚地了解设备消失的事情吗?只是为了帮助将来寻求此答案的人。
  • 如果guide 第 1 部分中描述的程序运行完毕,设备就会消失。它不再存在于 /proc/bus/input/devices 中,相应的 /dev/input/event* 也消失了。
猜你喜欢
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2011-06-28
  • 1970-01-01
相关资源
最近更新 更多