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.
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/
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
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:
Prawidłowa wersja USB HAL. Nie jest wymagana implementacja interfejsu użytkownika systemu.
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.
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ć.