下面的场景都是安卓设备作为主机模式来说明的
Android系统提供在设备为主机模式下的Usb管理工具UsbManager,相关的类说明:
UsbDevice:连接到Android主机的Usb设备,一个或多个
UsbInterface: UsbDevice中提供的功能接口,一个或多个
UsbEndpoint: UsbInterface中提供的数据传输通道,一个或多个
通过Usb连接的两个设备,怎么区分主机(host )和从(accessory/配件)?
上图中B连接的是主机,A连接的是外设。手持Android设备没有B的插口,可以使用OTG转接线
怎么获取和筛选连接到安卓设备(主机)上的UsbDevice?
UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE); ... HashMap deviceList = manager.getDeviceList(); UsbDevice device = deviceList.get("deviceName");
通过UsbDevice 的mClass类别来区分
//UsbDevice.java public int getDeviceClass() { return mClass; }
不同的类别
//UsbConstants.USB_CLASS_前缀的常量 /**<