Implementieren der USB-Port-Reset-API

Die USB Port Reset API ist eine System-API, die im Android Open Source Project (AOSP) für Geräte mit Android 11 oder höher verfügbar ist. Verwenden Sie es, um die USB-Gadget-Verbindung mit dem angeschlossenen Host zurückzusetzen. Um die USB-Port-Reset-API zu unterstützen, müssen Gerätehersteller USB Gadget HAL V1.1 implementieren. Um die USB-Port-Reset-API zu verwenden, ist eine systemprivilegierte App erforderlich.

Finden von USB Gadget HAL v1.1 und USB Port Reset API

Gerätehersteller müssen USB Gadget HAL v1.1 implementieren, um die USB-Port-Reset-API zu unterstützen.

  1. Um die Standard - Implementierung von USB - Gadget HAL v.1.1 zu finden, verwenden Sie den folgenden Pfad: <aosp>/hardware/interfaces/usb/gadget/1.1/default/
  2. Um die Hardware - Schnittstelle Header - Datei zu finden, verwenden Sie den folgenden Pfad: <aosp>/hardware/interfaces/usb/gadget/1.1/IUsbGadget.hal
  3. Um die API zum Zurücksetzen des USB-Ports zu finden, verwenden Sie diesen Pfad, um die API unter der AIDL-Headerdatei zu suchen. Dieser Pfad ist auch der Android Framework-Einstiegspunkt für die USB-Port-Reset-API:
    <aosp>/core/java/android/hardware/usb

Implementieren von Gadget HAL v1.1

Um die USB Port Reset API zu unterstützen, müssen Sie das USB Gadget HAL v1.1 implementieren. Es ist keine Implementierung der System-UI erforderlich. USB Gadget HAL v1.1 für USB - Anschluss Reset - API, stellen Sie die USB - Verbindung zwischen dem Zielgerät und dem Host zu implementieren.

API-Codefluss zum Zurücksetzen des USB-Ports

Die folgende Abbildung veranschaulicht den Codefluss der USB Port Reset API in einem Framework, einschließlich der Implementierung der USB Gadget HAL.

USB-Reset-API

Abbildung 1. Beispiel USB - Anschluss Flow Reset - API - Code

Validierung

Folgen Sie diesem Pfad, um den für die USB-Port-Reset-API implementierten VTS-Testfall zu finden:

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

Der VTS-Testfall für die USB-Port-Reset-API ist ein hostseitiger Testfall, mit dem Sie die folgenden Aktionen ausführen können:

  • Rufen Sie den USB - Anschluss Reset - API ADB Shell - Befehl (mit #svc usb resetUsbGadget ).
  • Prüfen Sie, ob das zu testende Gerät (DUT) die Verbindung trennen und wieder herstellen kann.