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進制的。