詳解Android開啟OTG功能/USB?Host?API功能
Android USB 模式簡介設(shè)備模式
當(dāng)計算機(jī)或其他USB主機(jī)需要連接安卓設(shè)備時,此時安卓設(shè)備是作為“USB設(shè)備”角色的,在計算機(jī)上顯示為 USB 外設(shè)?,F(xiàn)在的安卓設(shè)備已經(jīng)被賦予了愈加豐富的功能,如MTP相機(jī)模式、文件傳輸模式(類似于U盤)、RNDIS網(wǎng)卡模式等。當(dāng)使用普通手機(jī)數(shù)據(jù)線連接安卓手機(jī)和電腦就可以使用這些功能。
主機(jī)模式
Android 設(shè)備充當(dāng)USB主機(jī),安卓此時充當(dāng)類似于計算機(jī)PC的角色,可以連接鍵盤、鼠標(biāo)、U盤以及嵌入式應(yīng)用USB轉(zhuǎn)串口、轉(zhuǎn)I2C等設(shè)備。注意,此時不能再使用普通數(shù)據(jù)線,而應(yīng)該使用OTG(On-The-Go)轉(zhuǎn)接線。原理是Android設(shè)備通過USB接口中的ID信號線狀態(tài)決定其接口是工作在主機(jī)還是設(shè)備模式。如下為OTG轉(zhuǎn)接頭:

配件模式
設(shè)備模式與配件模式之間的區(qū)別在于,在配件模式下,除了 adb 之外,主機(jī)還可以看到其他 USB 功能。Android 設(shè)備從設(shè)備模式開始運(yùn)行,然后通過重新協(xié)商過程轉(zhuǎn)換到配件模式。除了提供AOA功能外,還額外提供了音頻功能。如:安卓Host AOA接口轉(zhuǎn)換芯片CH9343。
Android主機(jī)模式的開啟
如上文主機(jī)模式的介紹,開啟Android OTG主機(jī)功能,務(wù)必使用OTG轉(zhuǎn)換線,確認(rèn)是否成功可以通過連接的外設(shè)是否可以從Android設(shè)備USB口是否有電來確認(rèn),若仍沒有電,其一可以查看設(shè)備廠商規(guī)格書,其二可以點擊系統(tǒng)的“設(shè)置”,查看有無主動開啟OTG功能的菜單項。
若如上主機(jī)功能可以順利開啟,那么我們的安卓設(shè)備就可以連接鍵盤、鼠標(biāo)、U盤這些常用外設(shè)了。除此類設(shè)備之外,安卓系統(tǒng)還提供了一套USB Host API可以支持直接通過應(yīng)用程序和USB設(shè)備通訊,而無需預(yù)置設(shè)備的USB驅(qū)動。該功能極大的提高了安卓設(shè)備使用USB產(chǎn)品的靈活性,用戶端僅安裝APK安卓軟件即可。如客戶使用安卓連接USB轉(zhuǎn)串口設(shè)備CH340、USB轉(zhuǎn)多串口設(shè)備CH342或者用戶使用USB MCU開發(fā)的自定義廠商類設(shè)備、HID設(shè)備等使用場景。
當(dāng)然因為該特性并非所有安卓廠商都會強(qiáng)制支持和開放,所以我們需要通過以下方式來確認(rèn)或者進(jìn)行必要的配置來開啟該功能。
Android USB Host API功能的確認(rèn)和開啟
步驟一:確定 Android 設(shè)備是否支持 USB Host 功能,具體可以通過以下步驟進(jìn)行確認(rèn):
1. 查看手機(jī)或平板設(shè)備參數(shù),或者直接聯(lián)系廠家咨詢;
2. 使用 UsbHostDiagnostics.APK 安卓應(yīng)用軟件直接進(jìn)行檢測,漢化版軟件名稱為:USB 主機(jī)診斷;
Note:若步驟1提示支持,則無需進(jìn)行如下步驟。
步驟二:確認(rèn)系統(tǒng)是否包含 USB Host API 相關(guān)的庫文件,習(xí)慣也稱驅(qū)動文件。存放路徑為:/system/lib。
通過手機(jī)助手工具或者直接使用“adb shell”連接手機(jī),進(jìn)入該目錄進(jìn)行查看,以我的手機(jī)為例,通過 adb 查看結(jié)果如下圖所示:

如果沒有該文件,可以咨詢廠家或者拷貝相同處理器的安卓系統(tǒng)下的該文件至此目錄下。
步驟三:確認(rèn) Android 系統(tǒng)是否已經(jīng)開放了 USB Host 權(quán)限,這一步也是最重要的一步。
由于需要修改系統(tǒng)文件,所以要保證 Android 設(shè)備已經(jīng)具有 Root 權(quán)限,否則會遇到各種未知的問題。Root 之后,可以通過手機(jī)助手或者“ES文件瀏覽器”等軟件等操作系統(tǒng)文件。
進(jìn)入目錄“/system/etc/permissons”,查看該目錄下,是否有文件“android.hardware.usb.host.xml”,如果沒有,則需要自己創(chuàng)建一個或者直接從其他系統(tǒng)中拷貝過來。之后打開該文件,添加如下內(nèi)容:
<permissons>
<feature name="android.hardware.usb.host"/>
</permissons>在該文件下查找是否存在名稱為“handheld_core_hardware.xml”或者“tablet_core_hardware.xml”的文件。同理,未找到需要新建或者拷貝過來。打開文件,在 <permissions> section 中添加如下內(nèi)容:
<feature name="android.hardware.usb.host">
添加完成后文件內(nèi)容如下所示:

步驟四:非常重要,就是重啟 Android 設(shè)備。
注:查看安卓系統(tǒng)的 CPU 信息,可以進(jìn)入“adb shell”之后,通過“cat /proc/cpuinfo”查看。
讀者也可以移步至《CH340安卓應(yīng)用開發(fā)指南》,來了解關(guān)于此用法的詳情。
到此這篇關(guān)于Android開啟OTG功能/USB Host API功能的文章就介紹到這了,更多相關(guān)Android USB Host內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實現(xiàn)網(wǎng)易嚴(yán)選標(biāo)簽欄滑動效果
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)網(wǎng)易嚴(yán)選標(biāo)簽欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
安卓監(jiān)聽屏幕的橫豎翻轉(zhuǎn)實現(xiàn)方法
這篇文章主要介紹了安卓監(jiān)聽屏幕的橫豎翻轉(zhuǎn)實現(xiàn)方法,有需要的朋友可以參考一下2013-12-12
Win8下Android SDK安裝與環(huán)境變量配置教程
這篇文章主要為大家詳細(xì)介紹了Win8下Android SDK安裝與環(huán)境變量配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
Android點擊WebView實現(xiàn)圖片縮放及滑動瀏覽效果
這篇文章主要為大家詳細(xì)介紹了Android點擊WebView實現(xiàn)圖片縮放及滑動瀏覽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12

