安卓设备与USB硬件通讯时有两种模式可以选择:USB Host 模式与 USB Accessory 模式。从 USB 逻辑角色来说,USB Host 模式是指安卓设备作为 USB 主机,所有活动均由安卓设备发起;USB Accessory 模式是指安卓设备作为 USB 设备,由连接的 USB 硬件做 USB 主机,此时该 USB 主机也称为 USB Accessory。首先来看下,安卓官方对于这两种模式的概念描述。
USB Accessory(配件模式)
USB 配件模式允许用户连接专为 Android 设备设计的 USB 主机硬件。配件必须遵守 Android 配件开发工具包文档中列出的 Android 配件协议。 这使得 Android 设备无法充当 USB 主机时仍然可以与 USB 硬件交互。 当 Android 设备处于 USB 配件模式时,所连接的 Android USB 配件充当主机,为 USB 总线供电,并枚举所连接的设备。 Android 3.1(API 级别12)支持 USB 配件模式,该功能也被以附加组件库的方式回溯到 Android 2.3.4(API 级别10),以支持更广泛的设备。前提是厂商必须在系统镜像中添加附加组件库。
USB Host(主机模式)
当 Android 设备处于 USB 主机模式时,它充当 USB 主机,为总线供电,并枚举连接的 USB 设备。Android 3.1 及更高版本支持 USB 主机模式。