【问题标题】:Android to PC USB Read/WriteAndroid 到 PC USB 读/写
【发布时间】:2012-12-15 06:11:47
【问题描述】:

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

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

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

附件模式和主机模式我都试过了(以防万一)

【问题讨论】:

    标签: android windows usb


    【解决方案1】:

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

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

    如果您想使用附件模式与 PC 通信,您可能想试试这个AOAP implementation for PC。如果您只需要与 Android 设备通信以解决某些调试需求,您可能需要使用ADB port forwarding 和 TCP 连接。

    【讨论】:

    • 您好 Code Painters,感谢您的回答,您是对的,它实际上是 UsbManager.getAccessoryList() 调用,但返回 Null;
    • 嗨@Code Painters,感谢您的回答,我的清单设置为附件模式。遵循文档。你是对的,它是 UsbManager.getAccessoryList() 调用,但它也返回 Null。我正在使用 Android 4.0.3,所以我在 API 级别 15 使用 android.hardware.usb.accessory。我是使用启用了 USB 调试模式的 coby kyros 在 tcp/ip 上进行调试,但它无法识别通过 USB 电缆连接到 android coby 的任何附件(即 Windows 主机笔记本电脑)。我尝试在没有 debug'r 且 usb debug'g mode off 的情况下运行应用程序,仍然返回 null。
    • 要让 Windows 笔记本电脑被识别为附件,您需要在其上运行附件协议的一些实现,请参阅我的答案中的链接。
    • @CodePainters 你能告诉我如何使用 Android 和服务器端中的一些代码或博客链接来实现这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多