USB Port Reset API

Um die USB HAL-API (Hardware Abstraction Layer) zu unterstützen, müssen Gerätehersteller die entsprechende USB-HAL-Version implementieren. Für die Verwendung der USB HAL API ist eine App mit Systemberechtigungen erforderlich.

Die USB HAL unterstützt die USB Port Reset API, für die USB HAL v2.0 erforderlich ist und die für Geräte mit Android 13 und höher verfügbar ist. Mit dieser API kann die USB-Verbindung zum verbundenen Host zurückgesetzt werden.

USB HAL und zugehörige APIs finden

Gerätehersteller müssen die USB HAL implementieren, um die APIs zu unterstützen.

  1. Die Standardimplementierung der USB HAL finden Sie unter den folgenden Pfaden:

    Version AIDL (aktuellste): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. Die Headerdatei der Hardwareschnittstelle finden Sie unter folgendem Pfad:

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

  3. Verwenden Sie den folgenden Pfad, um die APIs in der AIDL-Headerdatei zu finden. Dieser Pfad ist auch der Android Framework-Einstiegspunkt für die API:

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

USB-HAL implementieren

Um mit der USB HAL API zu arbeiten, müssen Sie Folgendes implementieren:

  1. Korrigieren Sie die USB HAL-Version. Es ist keine Implementierung der System-UI erforderlich.

  2. USB AIDL HAL für die USB Port Reset API durch Zurücksetzen der USB-Verbindung zwischen dem Zielgerät und dem Host.

USB HAL API-Architektur

Die USB HAL API ist in das Paket android.hardware.usb integriert und nutzt die USB HAL für die Interaktion mit dem Gerät. Details zur Architektur der API finden Sie in der Abbildung unten.

API zum Zurücksetzen des USB-Anschlusses

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

Beispiel für den Codeablauf der USB Port Reseat API

Abbildung 1.1: Beispiel für den API-Codefluss für das erneute Einsetzen des USB-Anschlusses.

Implementierung validieren

Jede USB HAL-Version und die entsprechende API sind mit einem Testlauf in der Vendor Test Suite (VTS) verknüpft.

API zum Zurücksetzen des USB-Anschlusses

Den VTS-Testlauf für die USB Port Reset API finden Sie unter:

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

Der VTS-Testlauf für USB HAL v1.2 ist ein hostseitiger Testlauf, mit dem Sie diese Aktionen ausführen können.

  • Verwenden Sie den Befehl adb shell (#svc usb resetUsbPort), um die USB Port Reset API aufzurufen.

  • Prüfen Sie, ob das zu testende Gerät die Verbindung trennen und wiederherstellen kann.