我在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通信的任何实际工作代码示例都会有所帮助,pl。还要指出Android上是否需要任何驱动程序等与PC通信。
我已尝试过附件模式和主机模式(以防万一)
答案 0 :(得分:9)
我不确定我是否完全按照你在这里做的事情,但如果我理解正确的话 - 它就不会这样。 UsbManager.getDeviceList()
适用于具有USB 主机端口的Android设备,某些USB 设备已连接到该设备。但是,据我所知,您将作为设备的Android平板电脑连接到充当主机的PC(我想是这样,因为您写了关于驱动程序安装的文章)。
如果您想在Android USB 设备和某些USB 主机之间进行通信(例如,因为您的Android设备没有USB主机功能),您需要使用配件模式(我建议你从this Android Developers Blog post开始。但是这种模式需要USB主机端的特殊支持(它必须与Android Open Accessory Protocol的设备通信)。请注意,getDeviceList()
在附件模式中没有任何意义 - 首先,连接附件是USB主机,而不是USB设备,并且USB总线上只能有一个USB主机。
如果您想使用附件模式与PC通信,您可能需要尝试使用此AOAP implementation用于PC。如果您只需要与Android设备通信以满足某些调试需求,则可能需要使用ADB port forwarding和TCP连接。