Interfejs API resetowania portu USB

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

USB HAL obsługuje interfejs USB Port Reset API, który wymaga USB HAL v2.0 i jest dostępny dla urządzeń z systemem Android 13 i nowszym. Użyj tego interfejsu API, aby zresetować połączenie USB z podłączonym hostem.

Znajdź USB HAL i jego interfejsy API

Producenci urządzeń muszą wdrożyć USB HAL, aby obsługiwać interfejsy API.

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

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

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

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

  3. Aby znaleźć interfejsy API, użyj poniższej ścieżki w celu zlokalizowania interfejsów API w pliku nagłówkowym AIDL. Ta ścieżka jest także punktem wejścia Android Framework dla API:

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

Zaimplementuj USB HAL

Aby pracować z interfejsem USB HAL API, zaimplementuj:

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

  2. USB AIDL HAL dla interfejsu API resetowania portu USB poprzez resetowanie połączenia USB między urządzeniem docelowym a hostem.

Zrozumienie architektury USB HAL API

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

Interfejs API resetowania portu USB

Poniższy rysunek ilustruje przepływ kodu interfejsu API resetowania portów USB w środowisku, w tym implementację USB HAL.

Przykładowy przepływ kodu API ponownego osadzania portu USB

Rysunek 1.1 Przykładowy przepływ kodu API ponownego osadzania portu USB.

Zweryfikuj swoją implementację

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

Interfejs API resetowania portu USB

Aby znaleźć przypadek testowy VTS dla interfejsu API resetowania portu USB, przejdź do:

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

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

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

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