【问题标题】:USB Input device on Archos a28: Read and Write directly to device爱可视 a28 上的 USB 输入设备:直接读取和写入设备
【发布时间】:2011-01-01 19:45:11
【问题描述】:

我有一台运行 Android Froyo 2.2 的爱可视 a28 互联网平板电脑。我有一个 HID 输入类设备,我想在 Android 上工作。平板电脑本身已经能够处理开箱即用的鼠标和 USB 闪存驱动器。

我想将我的 USB 设备与 a28。这是一个定制设计的设备。我需要能够从设备读取和写入原始 USB 输入和输出报告。

我怎样才能做到这一点?我听说可以创建一个模块来执行此操作。

【问题讨论】:

  • 您能否提供有关您要连接的设备的更多具体信息。有些设备有自己的驱动程序,例如 FTDI USB 接口,这可能比从头开始使用所有低级 USB 更容易使用。
  • FTDI USB 是 USB 上的 Uart,而不是真正的 USB。您需要使用 VCOM 驱动程序。我同意这更容易,但我们已经费尽心思开发符合 HID 的设备,所以此时 VCOM 不是游戏中的选项。我们只需要让我们的设备在 Android 上运行,这意味着使用现有的 Linux HID 驱动程序。
  • 这是来自 #android-dev 在 freenode 上的评论:您需要编写一个服务并以某种方式将其挂接到 udev(我猜可能需要超级用户权限),然后与 /dev/ 交谈input/* 包含来自 HID 驱动程序的设备的文件。

标签: java android usb hid archos


【解决方案1】:

基本上你需要做两件事:

首先,您需要让自定义 USB 设备与 linux 一起使用。最终,平板电脑上的 android 堆栈底层的 linux。但首先,您可能想让它与桌面 linux 一起工作,这样更容易进行交互实验。可能这将涉及加载甚至修改内核驱动程序,并可能设置规则以使其自动加载。一旦你做到了,记录你做了什么,并为安卓平板电脑的 linux 做同样的事情。这几乎肯定需要root。在 android 上下文中,连接时自动加载驱动程序的方法可能不同,但驱动程序本身基本相同,只是针对适当的内核编译。

其次,您需要使设备可用于应用程序。如果您只想将其提供给自定义程序,您可以通过与设备文件直接交互或在 /proc 或 /sys 中创建某些内容来实现此目的。有争议的是,这些文件要么是全球可访问的,要么你必须将另一个特殊的组 ID/android 权限对修补到堆栈中,并让该组拥有该文件,以使其可用于具有该 android 权限的应用程序。更复杂的方法是编写一个管理设备的低级服务,并通过通常的基于 binder 的 android 服务通信机制将其公开给 android 应用程序。

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多