http://blog.csdn.net/glouds/article/details/40260805
=================
首先說一下爲什麼要寫關於Android USB Host通信的介紹,對於android程序原來說不懂硬件做USB通信確實開頭比較難,但是Google API介紹還是很詳細的,而且網上也有很多例子,不過網上的基本把介紹和例子分開,光介紹不給例子,給個例子又不知道它是幹什麼的或者運行不了。那麼我把自己通過閱讀別人的博客和USB通信協議等來做下面的介紹,並給出一個通用的例子。
Android USB Host分以下三部份介紹:
(三)給出一個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)在<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進制的。