USB Host
在你的android设备上USB主机模式,它作为USB主机,权力的公共汽车, 并列举了USB设备连接。 USB主机模式支持Android 3.1和更高版本。
API概述
在您开始之前,重要的是要理解你所需要的类。 的 下表描述了USB主机的api android.hardware.usb
包中。
表1。 USB主机api
类 | 描述 |
---|---|
UsbManager |
允许你列举和与连接USB设备通信。 |
UsbDevice |
代表一个连接USB设备和包含的方法来访问它的识别 信息、接口和端点。 |
UsbInterface |
代表一个USB设备的接口,它定义了一组的功能 设备。 一个设备可以有一个或多个接口的通信。 |
UsbEndpoint |
代表一个接口端点,该接口的通信通道。 一个 接口可以有一个或多个端点,通常有输入和输出端点 双向通信的设备。 |
UsbDeviceConnection |
代表一个连接到设备,数据传输的端点。 这个类 允许你来回同步或异步发送数据。 |
UsbRequest |
代表了一个异步请求与设备通过通信 UsbDeviceConnection 。 |
UsbConstants |
对应于定义定义了USB的常量在linux / USB / ch9。 h(Linux 内核。 |
在大多数情况下,您需要使用所有这些类( UsbRequest
只是如果你需要做异步通信) 当与USB设备通信。 一般来说,你获得一个 UsbManager
来检索所需的 UsbDevice
。 当你的设备,你需要找到合适的 UsbInterface
和UsbEndpoint
的 接口通信。 一旦你获得正确的端点,打开一个 UsbDeviceConnection
与USB设备进行通信。
Android清单要求
下面的列表描述了您需要添加到您的应用程序的清单文件 使用USB主机api:
- 因为不是所有的android设备保证支持USB主机api, 包括一个
< uses-feature >
您的应用程序使用的元素声明 的android.hardware.usb.host
特性。 - 设置最低SDK应用程序的API级别12或更高。 USB主机api 早些时候出现在API级别。
- 如果你想让你的应用程序连接USB设备的通知,指定一个
<意图过滤器>
和<元数据>
元素对的android.hardware.usb.action.USB_DEVICE_ATTACHED
你的主要活动的意图。 的<元数据>
元素指向外部声明的XML资源文件 确定要检测的设备信息。在XML资源文件中,申报的东西
< usb设备>
USB的元素 你想过滤设备。 下面的列表描述的属性< usb设备>
。 一般来说,使用供应商和产品ID如果你想过滤器 为一个特定的设备和使用类、子类和协议如果你想过滤为一组 USB设备,如大容量存储设备或数码相机。 您可以指定或没有 所有这些属性。 没有匹配的属性指定每一个USB设备,所以只有这样做 如果您的应用程序要求:卖主身份证
产品id
类
子类