USB 連接埠重設 API

如要支援 USB 硬體抽象層 (HAL) API,裝置製造商必須實作對應的 USB HAL 版本。如要使用 USB HAL API,必須具備系統權限的應用程式。

USB HAL 支援 USB 連接埠重設 API,這項 API 需要 USB HAL 2.0 版,且適用於搭載 Android 13 以上版本的裝置。使用這個 API 重設與已連線主機的 USB 連線。

尋找 USB HAL 和其 API

裝置製造商必須實作 USB HAL,才能支援這些 API。

  1. 如要找出 USB HAL 的預設實作方式,請使用下列路徑:

    AIDL 版本 (最新): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. 如要尋找硬體介面標頭檔,請使用下列路徑:

    AIDL 版本 (最新): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. 如要找出 API,請使用下列路徑在 AIDL 標頭檔中尋找 API。這個路徑也是 API 的 Android 架構進入點:

    android.hardware.usb<aosp>/core/java/android/hardware/usb

實作 USB HAL

如要使用 USB HAL API,請實作下列項目:

  1. 修正 USB HAL 版本。您不需要實作任何系統 UI。

  2. USB AIDL HAL,用於透過重設目標裝置與主機之間的 USB 連線,重設 USB 連接埠。

瞭解 USB HAL API 架構

USB HAL API 內建於 android.hardware.usb 套件,並利用 USB HAL 與裝置互動。下圖提供 API 架構的詳細資料。

USB 連接埠重設 API

下圖說明架構中 USB 連接埠重設 API 的程式碼流程,包括 USB HAL 的實作方式。

USB 連接埠重設 API 程式碼流程範例

圖 1.1:USB 連接埠重新插拔 API 程式碼流程範例。

驗證導入狀態

每個 USB HAL 版本和對應的 API 都與供應商測試套件 (VTS) 中的測試案例相關聯。

USB 連接埠重設 API

如要尋找 USB 連接埠重設 API 的 VTS 測試案例,請前往:

<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/

USB HAL v1.2 的 VTS 測試案例是主機端測試案例,可用於執行這些動作。

  • 如要叫用 USB 連接埠重設 API,請使用 adb shell 指令 (#svc usb resetUsbPort)。

  • 確認受測裝置 (DUT) 可以中斷連線並重新連線。