http://blog.csdn.net/glouds/article/details/40260805html
=================
android
首先说一下为何要写关于Android USB Host通讯的介绍,对于android程序原来讲不懂硬件作USB通讯确实开头比较难,可是Google API介绍仍是很详细的,并且网上也有不少例子,不过网上的基本把介绍和例子分开,光介绍不给例子,给个例子又不知道它是干什么的或者运行不了。那么我把本身经过阅读别人的博客和USB通讯协议等来作下面的介绍,并给出一个通用的例子。ide
Android USB Host分如下三部份介绍:post
(一)参考官方文档,查看USB设备信息。ui
(二)USB Host 相关API简介。spa
(三)给出一个U盘操做的例子。.net
Android USB Host使用详解之一:查看USB设备信息
xml
首先来看一下Google的官方文档中关于Android USB的介绍:Android USB Host and Accessoryhtm
Android USB有两种模式Host Mode和Accessory Mode:blog
在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)在<activity ...>添加
- <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进制的。