Port USB Reset API

Aby obsługiwać interfejs API warstwy abstrakcji sprzętowej USB (HAL), producenci urządzeń muszą wdrożyć odpowiednią wersję interfejsu 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 interfejsu 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

Wdrażanie interfejsu HAL USB

Aby korzystać z interfejsu USB HAL API, zaimplementuj:

  1. Prawidłowa wersja USB HAL. Nie jest wymagana implementacja interfejsu systemu.

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

Poznaj architekturę 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ższej ilustracji 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łączenia portu USB

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

Sprawdzanie poprawności implementacji

Każda wersja interfejsu HAL USB i odpowiadający jej interfejs API są powiązane z przypadkiem testowym w pakiecie VTS (Vendor Test Suite).

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 się odłączyć i ponownie połączyć.