http://blog.csdn.net/glouds/article/details/40260805
=================
首先说一下为什么要写关于Android USB Host通信的介绍,对于android程序原来说不懂硬件做USB通信确实开头比较难,但是Google API介绍还是很详细的,而且网上也有很多例子,不过网上的基本把介绍和例子分开,光介绍不给例子,给个例子又不知道它是干什么的或者运行不了。那么我把自己通过阅读别人的博客和USB通信协议等来做下面的介绍,并给出一个通用的例子。
Android USB Host分以下三部份介绍:
(一)参考官方文档,查看USB设备信息。
(二)USB Host 相关API简介。
(三)给出一个U盘操作的例子。
Android USB Host使用详解之一:查看USB设备信息
首先来看一下Google的官方文档中关于Android USB的介绍:Android USB Host and Accessory
Android USB有两种模式Host Mode和Accessory Mode:
在Host Mode下,Android手机作为主设备,如通过OTG线连接的HID设备或者U盘为从设备;在Accessory Mode下,Android手机作为从设备,如通过USB数据线连接的电脑为主设备。
本文主要介绍在Host Mode下,Android手机与USB设备之间的通信。Android USB Host的介绍可参见Google 官方文档:Android USB Host介绍
关于Android USB相关类的介绍留在下面慢慢展开,先编写一个Android程序:
1)在AndroidManifest.xml文件中添加
<uses-feature android:name="android.hardware.usb.host" />
2)在
- <intent-filter>
- <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
- intent-filter>
- <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
- android:resource="@xml/device_filter" />
- <resources>
- <usb-device vendor-id="3544" product-id="8199" />
- <usb-device vendor-id="5251" product-id="4608" />
- resources>
注:上面的id为10进制的,而通过电脑上查看的id为16进制的。