我在PC上有一个程序从USB接收字符串输入(旧程序)我有一个
Android(4.X)平板电脑,需要在USB上为PC上运行的程序提供字符串输入.
当我在Android上使用示例代码时,以下代码给出了空的hashmap. PC(在32位XP和64位Windows 7上试用)具有Android驱动程序.
当我在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通信.
我试过了附件模式和主机模式(以防万一)
解决方法
我不确定我是否完全遵循你在这里做的事情,但如果我理解正确的话 – 它就不会这样. 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 for PC.如果只需要与Android设备通信以满足某些调试需求,您可能需要使用ADB port forwarding和TCP连接.