Port USB Reset API

Aby obsługiwać interfejs USB Hardware Abstraction Layer (HAL) API, producenci urządzeń muszą wdrożyć odpowiednią wersję USB HAL. Aby korzystać z interfejsu USB HAL API, wymagana jest aplikacja z uprawnieniami systemowymi.

Interfejs HAL USB obsługuje interfejs API resetowania portu USB, który wymaga interfejsu HAL USB w wersji 2.0 i jest dostępny na urządzeniach z Androidem 13 lub nowszym. Użyj tego interfejsu API, aby zresetować połączenie USB z podłączonym hostem.

Znajdowanie HAL USB i jego interfejsów API

Aby obsługiwać interfejsy API, producenci urządzeń muszą wdrożyć warstwę HAL USB.

  1. Aby znaleźć domyślną implementację USB HAL, użyj tych ścieżek:

    Wersja AIDL (najnowsza): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. Aby znaleźć plik nagłówkowy interfejsu sprzętowego, użyj tej ścieżki:

    Wersja AIDL (najnowsza): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. Aby znaleźć interfejsy API, użyj tej ścieżki, aby zlokalizować je w pliku nagłówkowym AIDL. Ta ścieżka jest też punktem wejściowym interfejsu API w Android Framework:

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

Implementacja interfejsu HAL USB

Aby korzystać z interfejsu USB HAL API, zaimplementuj:

  1. Prawidłowa wersja USB HAL. Nie musisz implementować interfejsu systemu.

  2. USB AIDL HAL dla interfejsu USB Port Reset API przez zresetowanie połączenia USB między urządzeniem docelowym a hostem.

Architektura interfejsu USB HAL API

Interfejs USB HAL API jest wbudowany w pakiet android.hardware.usb i wykorzystuje USB HAL do interakcji z urządzeniem. Szczegóły architektury interfejsu API znajdziesz na ilustracji poniżej.

USB Port Reset API

Na poniższym rysunku przedstawiono przepływ kodu interfejsu USB Port Reset API w ramach platformy, w tym implementację USB HAL.

Przykładowy przepływ kodu interfejsu API ponownego podłączania portu USB

Rysunek 1.1. Przykładowy przepływ kodu interfejsu API ponownego podłączenia portu USB.

Sprawdzanie poprawności implementacji

Każda wersja USB HAL i odpowiadający jej interfejs API są powiązane z przypadkiem testowym w zestawie testów dostawcy (VTS).

USB Port Reset API

Aby znaleźć przypadek testowy VTS dla interfejsu USB Port Reset API, otwórz:

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

Przypadek testowy VTS dla USB HAL w wersji 1.2 to przypadek testowy po stronie hosta, którego możesz użyć do wykonania tych działań.

  • Aby wywołać interfejs USB Port Reset API, użyj polecenia adb shell (#svc usb resetUsbPort).

  • Sprawdź, czy testowane urządzenie może odłączyć się i połączyć ponownie.