7

我在 PC 上有一个程序从 USB 接收字符串输入(旧程序)我有一个 Android (4.X) 平板电脑,它需要在 USB 上向 PC 上运行的程序提供字符串输入。当我在 Android 上使用示例代码时,以下代码给出了空的 hashmap。PC(在 32 位 XP 和 64 位 Windows 7 上试用)具有 Android 驱动程序。

    mManager = (UsbManager)getSystemService(Context.USB_SERVICE);
    HashMap<String, UsbDevice> devices =  mManager.getDeviceList();

任何通过 USB 与 PC 通信的真实工作代码示例都会有所帮助,请。还指出是否需要在 Android 上与 PC 对话的任何驱动程序等。

我已经尝试过附件模式和主机模式(以防万一)

4

1 回答 1

10

我不确定我是否完全遵循您在这里所做的事情,但如果我理解正确 - 它不会以这种方式工作。这UsbManager.getDeviceList()适用于带有 USB主机端口的 Android 设备,一些 USB设备连接到这些设备。但是,据我了解,您将充当设备的 Android 平板电脑连接到充当主机的 PC (我猜是这样,因为您写了有关驱动程序安装的文章)。

如果您想在 Android USB设备和某些 USB主机之间进行通信(例如,因为您的 Android 设备没有 USB 主机功能),您需要使用附件模式(我建议您从这篇 Android 开发者博客文章开始)。但这种模式需要 USB 主机端的特殊支持(它必须使用Android Open Accessory Protocol与设备通信)。请注意,这getDeviceList()在附件模式下没有意义 - 首先,连接的附件是 USB 主机,而不是 USB 设备,并且 USB 总线上只能有一个 USB 主机。

如果您想使用附件模式与 PC 通信,您可能想尝试此AOAP 实现PC。如果您只需要与 Android 设备进行一些调试需求,您可能希望使用ADB 端口转发和 TCP 连接。

于 2012-12-31T09:43:04.603 回答