Android usb host

作者: 流浪dee猫 | 来源:发表于2019-05-31 09:53 被阅读0次

    项目中使用到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方法:

    相关文章

      网友评论

        本文标题:Android usb host

        本文链接:https://www.haomeiwen.com/subject/dhnitctx.html