溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android怎么開啟OTG功能/USB?Host?API功能

發(fā)布時(shí)間:2022-07-22 09:25:09 來源:億速云 閱讀:179 作者:iii 欄目:開發(fā)技術(shù)

這篇“Android怎么開啟OTG功能/USB Host API功能”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Android怎么開啟OTG功能/USB Host API功能”文章吧。

    Android USB 模式簡(jiǎn)介設(shè)備模式

    當(dāng)計(jì)算機(jī)或其他USB主機(jī)需要連接安卓設(shè)備時(shí),此時(shí)安卓設(shè)備是作為“USB設(shè)備”角色的,在計(jì)算機(jī)上顯示為 USB 外設(shè)。現(xiàn)在的安卓設(shè)備已經(jīng)被賦予了愈加豐富的功能,如MTP相機(jī)模式、文件傳輸模式(類似于U盤)、RNDIS網(wǎng)卡模式等。當(dāng)使用普通手機(jī)數(shù)據(jù)線連接安卓手機(jī)和電腦就可以使用這些功能。

    主機(jī)模式

    Android 設(shè)備充當(dāng)USB主機(jī),安卓此時(shí)充當(dāng)類似于計(jì)算機(jī)PC的角色,可以連接鍵盤、鼠標(biāo)、U盤以及嵌入式應(yīng)用USB轉(zhuǎn)串口、轉(zhuǎn)I2C等設(shè)備。注意,此時(shí)不能再使用普通數(shù)據(jù)線,而應(yīng)該使用OTG(On-The-Go)轉(zhuǎn)接線。原理是Android設(shè)備通過USB接口中的ID信號(hào)線狀態(tài)決定其接口是工作在主機(jī)還是設(shè)備模式。

    配件模式

    設(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ī)格書,其二可以點(diǎn)擊系統(tǒng)的“設(shè)置”,查看有無主動(dòng)開啟OTG功能的菜單項(xiàng)。

    若如上主機(jī)功能可以順利開啟,那么我們的安卓設(shè)備就可以連接鍵盤、鼠標(biāo)、U盤這些常用外設(shè)了。除此類設(shè)備之外,安卓系統(tǒng)還提供了一套USB Host API可以支持直接通過應(yīng)用程序和USB設(shè)備通訊,而無需預(yù)置設(shè)備的USB驅(qū)動(dòng)。該功能極大的提高了安卓設(shè)備使用USB產(chǎn)品的靈活性,用戶端僅安裝APK安卓軟件即可。如客戶使用安卓連接USB轉(zhuǎn)串口設(shè)備CH340、USB轉(zhuǎn)多串口設(shè)備CH342或者用戶使用USB MCU開發(fā)的自定義廠商類設(shè)備、HID設(shè)備等使用場(chǎng)景。

    當(dāng)然因?yàn)樵撎匦圆⒎撬邪沧繌S商都會(huì)強(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)行檢測(cè),漢化版軟件名稱為:USB 主機(jī)診斷;

    Note:若步驟1提示支持,則無需進(jìn)行如下步驟。

    步驟二:確認(rèn)系統(tǒng)是否包含 USB Host API 相關(guān)的庫(kù)文件,習(xí)慣也稱驅(qū)動(dòng)文件。存放路徑為:/system/lib。

    通過手機(jī)助手工具或者直接使用“adb shell”連接手機(jī),進(jìn)入該目錄進(jìn)行查看,以我的手機(jī)為例,通過 adb 查看結(jié)果如下圖所示:

    Android怎么開啟OTG功能/USB?Host?API功能

    如果沒有該文件,可以咨詢廠家或者拷貝相同處理器的安卓系統(tǒng)下的該文件至此目錄下。

    步驟三:確認(rèn) Android 系統(tǒng)是否已經(jīng)開放了 USB Host 權(quán)限,這一步也是最重要的一步。

    由于需要修改系統(tǒng)文件,所以要保證 Android 設(shè)備已經(jīng)具有 Root 權(quán)限,否則會(huì)遇到各種未知的問題。Root 之后,可以通過手機(jī)助手或者“ES文件瀏覽器”等軟件等操作系統(tǒng)文件。

    進(jìn)入目錄“/system/etc/permissons”,查看該目錄下,是否有文件“android.hardware.usb.host.xml”,如果沒有,則需要自己創(chuàng)建一個(gè)或者直接從其他系統(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怎么開啟OTG功能/USB?Host?API功能

    步驟四:非常重要,就是重啟 Android 設(shè)備。

    注:查看安卓系統(tǒng)的 CPU 信息,可以進(jìn)入“adb shell”之后,通過“cat /proc/cpuinfo”查看。

    以上就是關(guān)于“Android怎么開啟OTG功能/USB Host API功能”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI