USB-Port-Reset-API

Um die USB Hardware Abstraction Layer (HAL) API zu unterstützen, müssen Gerätehersteller die entsprechende USB HAL-Version implementieren. Um die USB-HAL-API nutzen zu können, ist eine systemprivilegierte App erforderlich.

Der USB HAL unterstützt die USB Port Reset API, die USB HAL v2.0 erfordert und für Geräte mit Android 13 und höher verfügbar ist. Verwenden Sie diese API, um die USB-Verbindung mit dem verbundenen Host zurückzusetzen.

Finden Sie den USB-HAL und seine APIs

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

  1. Um die Standardimplementierung von USB HAL zu finden, verwenden Sie die folgenden Pfade:

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

  2. Um die Headerdatei der Hardwareschnittstelle zu finden, verwenden Sie den folgenden Pfad:

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

  3. Um die APIs zu finden, verwenden Sie den folgenden Pfad, um die APIs unter 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

Implementieren Sie den USB-HAL

Um mit der USB-HAL-API zu arbeiten, implementieren Sie Folgendes:

  1. Richtige USB-HAL-Version. Es ist keine System-UI-Implementierung 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.

Verstehen Sie die 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. Einzelheiten zur Architektur der API finden Sie in der folgenden Abbildung.

USB-Port-Reset-API

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

Beispiel für den API-Codeablauf zum Neusetzen des USB-Ports

Abbildung 1.1 Beispiel-API-Codefluss zum erneuten Einsetzen des USB-Ports.

Validieren Sie Ihre Implementierung

Jede USB-HAL-Version und die entsprechende API sind einem Testfall in der Vendor Test Suite (VTS) zugeordnet.

USB-Port-Reset-API

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

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

Der VTS-Testfall für USB HAL v1.2 ist ein hostseitiger Testfall, den Sie zum Ausführen dieser Aktionen verwenden können.

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

  • Stellen Sie sicher, dass das zu testende Gerät (DUT) die Verbindung trennen und wieder herstellen kann.