Interfejs API resetowania portu USB

Aby obsługiwać interfejs API HAL (Hardware Abstraction Layer), producenci urządzeń muszą zaimplementować odpowiednią wersję interfejsu HAL USB. Aby korzystać z interfejsu USB HAL API, wymagana jest aplikacja z przywilejami 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

Producenci urządzeń muszą zaimplementować interfejs HAL USB, aby obsługiwać interfejsy API.

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

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

  2. Aby znaleźć plik nagłówka 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 do ich znalezienia w pliku nagłówka AIDL. Ta ścieżka jest też punktem wejścia interfejsu API do Android Framework:

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

Zaimplementuj interfejs HAL USB

Aby korzystać z interfejsu USB HAL API, zaimplementuj:

  1. Prawidłowa wersja interfejsu HAL USB. Nie musisz wdrażać interfejsu użytkownika systemu.

  2. USB AIDL HAL dla interfejsu USB Port Reset API, który resetuje połączenie USB między urządzeniem docelowym a hostem.

Architektura interfejsu USB HAL API

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

Port USB Reset API

Rysunek poniżej przedstawia przepływ kodu interfejsu API resetowania portu USB w ramach frameworku, w tym implementację interfejsu HAL USB.

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

Rysunek 1.1. Przykładowy przepływ kodu interfejsu API do ponownego zamykania 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 testów dostawcy (VTS).

Port USB Reset API

Aby znaleźć przypadek testowy VTS interfejsu USB Port Reset API, wykonaj te czynności:

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

Przypadek testowy VTS dla interfejsu USB HAL w wersji 1.2 to przypadek testowy po stronie hosta, którego możesz użyć do wykonywania tych czynności.

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

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