Android USB Host使用詳解

2021-09-29 19:41:02 字數 1810 閱讀 4645

***************==

首先說一下為什麼要寫關於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介紹

1)在androidmanifest.xml檔案中新增

<

uses-feature

android:name="android.hardware.usb.host"

/>

2)在新增

[html]view plain

copy

<

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"

/>

在res/xml資料夾下新建device_filter.xml[html]view plain

copy

<

resources

>

<

usb-device

vendor-id="3544"

product-id="8199"

/>

<

usb-device

vendor-id="5251"

product-id="4608"

/>

resources

>

其中vendor-id和product-id為插入usb裝置的生產廠家號和產品號,在 插入(attached)上面列出的裝置之一時,就會彈出選擇開啟應用程式的對話方塊。

注:上面的id為10進製的,而通過電腦上檢視的id為16進製制的。

有關Android Usb Host開發

最近有個專案是關於android應用與hid通過使用usb host模式通訊。由於以前沒做過usb方面的開發,而且看見網上在這方面的資料也很少,所以就發一篇博文和大家共享經驗。回歸正題,在android usb host 開發中,對於發現裝置 如何連線裝置等等的都在官方api中說的清清楚楚了,我也不...

VMware License Server使用經驗

近期在測試vmware server,在使用vmware license server的時候碰到一些問題,經過兩天的實驗,問題得以解決,現記錄如下,以供朋友們參考。1 複製license檔案 在安裝vmware virtualcenter的時候,會一同安裝license server伺服器。如果你在...

Django Rest framework使用例項

一 修改配置檔案 setting.py django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contri...