Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
USB Port Reset API
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Zur Unterstützung der USB HAL API (Hardware Abstraction Layer) 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. Sie ist auf Geräten mit Android 13 und höher verfügbar. Mit dieser API können Sie die USB-Verbindung zum verbundenen Host zurücksetzen.
USB HAL und zugehörige APIs finden
Gerätehersteller müssen die USB HAL implementieren, um die APIs zu unterstützen.
Die Standardimplementierung der USB HAL finden Sie unter den folgenden Pfaden:
Version AIDL (aktuell):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Die Headerdatei der Hardwareschnittstelle finden Sie unter folgendem Pfad:
Version AIDL (aktuell):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Sie finden die APIs unter dem folgenden Pfad in der AIDL-Headerdatei. Dieser Pfad ist auch der Einstiegspunkt des Android-Frameworks für die API:
android.hardware.usb
:
<aosp>/core/java/android/hardware/usb
USB HAL implementieren
Implementieren Sie Folgendes, um mit der USB HAL API zu arbeiten:
Korrekte USB HAL-Version. Es ist keine System-UI-Implementierung erforderlich.
USB AIDL HAL für die USB Port Reset API, um die USB-Verbindung zwischen dem Zielgerät und dem Host zurückzusetzen.
USB HAL API-Architektur
Die USB HAL API ist in das android.hardware.usb
-Paket eingebunden und nutzt den USB HAL, um mit dem Gerät zu interagieren. Details zur Architektur der API finden Sie in der Abbildung unten.
USB Port Reset API
Die folgende Abbildung veranschaulicht den Codefluss der USB Port Reset API in einem Framework, einschließlich der Implementierung der USB HAL.
Abbildung 1.1: Beispiel für den API-Codefluss zum Neusetzen des USB-Anschlusses
Implementierung validieren
Jede USB HAL-Version und die zugehörige API sind mit einem Testfall in der Vendor Test Suite (VTS) verknüpft.
USB Port Reset API
Den VTS-Testfall für die USB Port Reset API finden Sie hier:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
Der VTS-Testfall für USB HAL v1.2 ist ein hostseitiger Testfall, 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 die Verbindung zum Testgerät getrennt und wiederhergestellt werden kann.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# USB Port Reset API\n\nTo support the USB Hardware Abstraction Layer (HAL) API, device manufacturers\nmust implement the corresponding USB HAL version. To use the USB HAL API, a\nsystem-privileged app is required.\n\nThe USB HAL supports the USB Port Reset API, which requires USB HAL v2.0 and is\navailable for devices running Android 13 and higher. Use this API to reset the\nUSB connection with the connected host.\n\nFind the USB HAL and its APIs\n-----------------------------\n\nDevice manufacturers must implement the USB HAL to support the APIs.\n\n1. To find the default implementation of USB HAL, use the following paths:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/default/`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/default/)\n2. To find the hardware interface header file, use the following path:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/IUsbGadget.hal)\n3. To find the APIs, use the following path to locate the APIs under the\n AIDL header file. This path is also the Android Framework entry point for the API:\n\n `android.hardware.usb`:\n [`\u003caosp\u003e/core/java/android/hardware/usb`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/hardware/usb/IUsbManager.aidl)\n\nImplement the USB HAL\n---------------------\n\nTo work with the USB HAL API, implement the:\n\n1. Correct USB HAL version. No system UI implementation is required.\n\n2. USB AIDL HAL for the USB Port Reset API by resetting the USB connection between the target device and the host.\n\nUnderstand the USB HAL API architecture\n---------------------------------------\n\nThe USB HAL API is built into the `android.hardware.usb` package and leverages the USB HAL to interact with the device. Details about the architecture for the API is provided in the figure below.\n\n### USB Port Reset API\n\nThe following figure illustrates the code flow of the USB Port Reset API in a framework, including the implementation of the USB HAL.\n\n**Figure 1.1** Sample USB Port Reseat API code flow.\n\nValidate your implementation\n----------------------------\n\nEach USB HAL version and its corresponding API is associated with a test case in\nthe Vendor Test Suite (VTS).\n\n### USB Port Reset API\n\nTo find the VTS test case for the USB Port Reset API, go to:\n\n[`\u003caosp\u003e/test/vts-testcase/hal/usb/gadget/V1_2/`](https://android.googlesource.com/platform/test/vts-testcase/hal/+/refs/heads/android16-release/usb/gadget/V1_2)\n\nThe VTS test case for USB HAL v1.2 is a host-side test case you can use to\nperform these actions.\n\n- To invoke the USB Port Reset API, use the `adb shell`\n command (`#svc usb resetUsbPort`).\n\n- Confirm that the device under test (DUT) can disconnect and reconnect."]]