USB 端口重置 API

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

USB HAL 支援 USB 連接埠重設 API,這需要 USB HAL v2.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 連接埠重置 API,透過重置目標裝置和主機之間的 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) 可以斷開並重新連接。