代码之家  ›  专栏  ›  技术社区  ›  Tegra Detra

安卓手机作为电脑鼠标

  •  6
  • Tegra Detra  · 技术社区  · 14 年前

    我创建了一个Android应用程序,它为触摸Debian LeNee机器的Java客户端提供触摸屏传感器数据。

    客户机将这些数据映射到屏幕上的位置,就像Wacom Pad一样。我想把x-loc和y-loc放在一个文件中,并将该文件识别为一个设备。(我不清楚地相信这是它应该如何工作的)

    我在Linux方面有经验,但以前不必创建设备。如何告诉Linux这个文件是鼠标。我必须创建一个驱动程序吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   rafl    14 年前

    有很多方法可以做到这一点,从编写实际的设备驱动程序,到编写X客户机以生成X事件(例如使用xtest扩展),再到使用内核接口来注入输入子系统事件。

    我会用最后一个 uinput 子系统。这是几乎所有最近的内核的一部分,并提供 /dev/uinput ,您可以定期打开并执行各种操作 ioctl 从常规用户空间创建输入设备。

    还请注意,这方面的一些机制已经存在。在Linux上运行良好的蓝牙人机界面设备就是一个例子。 rinputd 一个守护进程,用于侦听rinput客户机并根据其发送的数据生成uinput事件。是另一个。你可能会考虑把你的Android应用AKT作为一个RINPUT客户端。

        2
  •  0
  •   Chris Stratton    14 年前

    您可以编写一个Linux设备驱动程序,将数据解释为一个真正的鼠标,或者说服X服务器(或其他任何设备)接受来自其他设备(如命名管道)的输入。

    实际的设备文件不是包含任何内容的文件-它们只是对一个主要和次要数字的引用,用于与内核中的驱动程序对话,该驱动程序可以在某些设备上执行类似文件的模糊选项。您使用mknod创建设备文件,但只有在具有匹配数字的内核驱动程序支持后,它们才能工作。相信现在有了一些存根机制,所以实际驱动程序的大部分可以在用户空间中运行。

    推荐文章