基础知识Android

Android usb host

2019-05-31  本文已影响0人  流浪dee猫

项目中使用到usb camera ,同时该模组有一个虚拟usb串口,可以进行通信,发送指令和接收模组返回的实时温度数据;

根据usb host的开发流程,主要需要用到(UsbManager,UsbDevice,UsbEndpoint,UsbInterface,UsbDeviceConnection):

1、获取UsbManager 服务:

UsbManager mUsbManager;

mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

2、获取UsbDevice,这是我们需要操作的外设device:

通过设置usb插拔监听,根据外设的device.getProductId(),找到我们需要操作的usbDevice,申请usb使用权限即可。

usb 使用授权成功后,根据UsbDevice,获取需要的UsbInterface,并由UsbInterface获取输出/输入UsbEndpoint,最后通过UsbManager 管理mUsbManager.openDevice(device);打开外设,建立连接,UsbDeviceConnection。如下图:

注意,UsbEndpoint的type有几种类型,

USB_ENDPOINT_XFER_CONTROL (endpoint zero)

USB_ENDPOINT_XFER_ISOC (isochronousendpoint) 

USB_ENDPOINT_XFER_BULK (bulkendpoint) 

USB_ENDPOINT_XFER_INT (interruptendpoint)

分别为对应四种不同的传输类型:控制传输,实时传输,批量传输,中断传输,我们这里使用的USB设备的端口类型为bulk endpoint,直接使用bulkTransfer方法:

上一篇下一篇

猜你喜欢

热点阅读