USB相关概念:
简单来说,USB 是一个用于数据交换的总线(Bus)。发启(initiate)数据交换的一方称为主机 (host),另一方称为外设(peripheral),两者通过总线实现通信,由主机负责供电。一个 USB 系 统里只有一个主机,但可以有多个外设,外设的主要信息记录在描述符(descriptor)里。一个 外设就是一个单独的物理实体,但它却可能有多个逻辑上的设备功能(device function),比如 一个网络摄像头,除了有照相机,还可能有内置的麦克风,这种外接设备也被称为复合设备 (composite device)。
USB OTG:USB On-The-Go 通常缩写为 USB OTG,是 USB2.0 规格的补充标准。它可使 USB 设备,例如播放器或手机,从 USB 周边设备变为 USB 主机,与其他 USB 设备连接通信。在 正常情况下,这些支持 OTG 的 USB 设备和 USB 主机(如台式机或者手提电脑),仍然作为 USB 周边设备使用。
Android 平台下 USB 开发有以下两种模式:
USB Host Mode:
顾名思义,Android 设备作为主机,需要安卓设备支持 OTG 接头。常见应用场景诸如连接数 码相机、键盘、鼠标、游戏手柄等硬件。
USB Accessory Mode:
这种模式下 Android 设备承担外设的角色。应用场景诸如连接机器人控制器、音响、医疗器 材等,当然前提是这些设备支持与Android设备连接并且遵守Android accessory communication protocol。这种模式可以让不具有 host 能力的 Android 设备与其他硬件交互。
Android 开放配件协议(AOA)
Android 开放配件 (AOA) 支持功能可让外部 USB 硬件(Android USB 配件)与处于配件模 式下的 Android 设备进行交互。当某台 Android 设备处于配件模式时,所连接的配件会充 当 USB 主机(为总线供电并列举设备),而 Android 设备则充当 USB 配件。
1、协议 API USB Host Mode:
UsbManager:USB 设备管理类,提供获取 USB 设备相关 API。
UsbDevice:USB 设备实体类,定义设备的相关属性。
UsbInterface:表示 USB 设备的接口,它定义了设备的一组功能。设备可以具有一个或多个进 行通信的接口。
UsbEndpoint:表示接口端点,作为接口的通信通道。接口可以有一个或多个端点