Android USB 模式簡介
設備模式
當計算機或其他USB主機需要連接安卓設備時,此時安卓設備是作為“USB設備”角色的,在計算機上顯示為 USB 外設,現在的安卓設備已經被賦予了愈加豐富的功能,如MTP相機模式、檔案傳輸模式(類似于U盤)、RNDIS網卡模式等,當使用普通手機資料線連接安卓手機和電腦就可以使用這些功能,
主機模式
Android 設備充當USB主機,安卓此時充當類似于計算機PC的角色,可以連接鍵盤、滑鼠、U盤以及嵌入式應用USB轉串口、轉I2C等設備,注意,此時不能再使用普通資料線,而應該使用OTG(On-The-Go)轉接線,原理是Android設備通過USB介面中的ID信號線狀態決定其介面是作業在主機還是設備模式,如下為OTG轉接頭:
??????? ??????? ??????? ??????? 
配件模式
設備模式與配件模式之間的區別在于,在配件模式下,除了 adb 之外,主機還可以看到其他 USB 功能,Android 設備從設備模式開始運行,然后通過重新協商程序轉換到配件模式,除了提供AOA功能外,還額外提供了音頻功能,如:安卓Host AOA介面轉換芯片CH9343,
Android主機模式的開啟
如上文主機模式的介紹,開啟Android OTG主機功能,務必使用OTG轉換線,確認是否成功可以通過連接的外設是否可以從Android設備USB口是否有電來確認,若仍沒有電,其一可以查看設備廠商規格書,其二可以點擊系統的“設定”,查看有無主動開啟OTG功能的選單項,
若如上主機功能可以順利開啟,那么我們的安卓設備就可以連接鍵盤、滑鼠、U盤這些常用外設了,除此類設備之外,安卓系統還提供了一套USB Host API可以支持直接通過應用程式和USB設備通訊,而無需預置設備的USB驅動,該功能極大的提高了安卓設備使用USB產品的靈活性,用戶端僅安裝APK安卓軟體即可,如客戶使用安卓連接USB轉串口設備CH340、USB轉多串口設備CH342或者用戶使用USB MCU開發的自定義廠商類設備、HID設備等使用場景,
當然因為該特性并非所有安卓廠商都會強制支持和開放,所以我們需要通過以下方式來確認或者進行必要的配置來開啟該功能,
Android USB Host API功能的確認和開啟
步驟一:確定 Android 設備是否支持 USB Host 功能,具體可以通過以下步驟進行確認:
1. 查看手機或平板設備引數,或者直接聯系廠家咨詢;
2. 使用 UsbHostDiagnostics.APK 安卓應用軟體直接進行檢測,漢化版軟體名稱為:USB 主機診斷;
Note:若步驟1提示支持,則無需進行如下步驟,
步驟二:確認系統是否包含 USB Host API 相關的庫檔案,習慣也稱驅動檔案,存放路徑為:/system/lib,
通過手機助手工具或者直接使用“adb shell”連接手機,進入該目錄進行查看,以我的手機為例,通過 adb 查看結果如下圖所示:
如果沒有該檔案,可以咨詢廠家或者拷貝相同處理器的安卓系統下的該檔案至此目錄下,
步驟三:確認 Android 系統是否已經開放了 USB Host 權限,這一步也是最重要的一步,
由于需要修改系統檔案,所以要保證 Android 設備已經具有 Root 權限,否則會遇到各種未知的問題,Root 之后,可以通過手機助手或者“ES檔案瀏覽器”等軟體等作業系統檔案,
進入目錄“/system/etc/permissons”,查看該目錄下,是否有檔案“android.hardware.usb.host.xml”,如果沒有,則需要自己創建一個或者直接從其他系統中拷貝過來,之后打開該檔案,添加如下內容:
<permissons>
<feature name="android.hardware.usb.host"/>
</permissons>
在該檔案下查找是否存在名稱為“handheld_core_hardware.xml”或者“tablet_core_hardware.xml”的檔案,同理,未找到需要新建或者拷貝過來,打開檔案,在 <permissions> section 中添加如下內容:
<feature name="android.hardware.usb.host">
添加完成后檔案內容如下所示:
步驟四:非常重要,就是重啟 Android 設備,
注:查看安卓系統的 CPU 資訊,可以進入“adb shell”之后,通過“cat /proc/cpuinfo”查看,
讀者也可以移步至《CH340安卓應用開發指南》,來了解關于此用法的詳情,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/301314.html
標籤:其他
上一篇:android 8.0圖示適配
下一篇:流式布局案例——京東網頁
