À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
API USB Port Reset
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Pour prendre en charge l'API HAL (Hardware Abstraction Layer) USB, les fabricants d'appareils doivent implémenter la version HAL USB correspondante. Pour utiliser l'API HAL USB, une application disposant de droits système est requise.
Le HAL USB est compatible avec l'API de réinitialisation du port USB, qui nécessite le HAL USB v2.0 et est disponible pour les appareils équipés d'Android 13 ou version ultérieure. Utilisez cette API pour réinitialiser la connexion USB avec l'hôte connecté.
Trouver le HAL USB et ses API
Les fabricants d'appareils doivent implémenter le HAL USB pour prendre en charge les API.
Pour trouver l'implémentation par défaut du HAL USB, utilisez les chemins d'accès suivants:
Version AIDL (dernière):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Pour trouver le fichier d'en-tête de l'interface matérielle, utilisez le chemin d'accès suivant:
Version AIDL (dernière):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Pour trouver les API, utilisez le chemin d'accès suivant pour les localiser sous le fichier d'en-tête AIDL. Ce chemin d'accès est également le point d'entrée du framework Android pour l'API:
android.hardware.usb
:
<aosp>/core/java/android/hardware/usb
Implémenter le HAL USB
Pour utiliser l'API HAL USB, implémentez les éléments suivants:
Version correcte du HAL USB. Aucune implémentation d'UI système n'est requise.
HAL AIDL USB pour l'API de réinitialisation du port USB en réinitialisant la connexion USB entre l'appareil cible et l'hôte.
Comprendre l'architecture de l'API HAL USB
L'API HAL USB est intégrée au package android.hardware.usb
et utilise le HAL USB pour interagir avec l'appareil. Vous trouverez des informations détaillées sur l'architecture de l'API dans la figure ci-dessous.
API USB Port Reset
La figure suivante illustre le flux de code de l'API de réinitialisation du port USB dans un framework, y compris l'implémentation du HAL USB.
Figure 1.1 : Exemple de flux de code de l'API de réinsertion du port USB.
Valider votre implémentation
Chaque version du HAL USB et son API correspondante sont associées à un cas de test dans la suite de tests du fournisseur (VTS, Vendor Test Suite).
API USB Port Reset
Pour trouver le cas de test VTS de l'API USB Port Reset, accédez à:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
Le scénario de test VTS pour la version 1.2 du HAL USB est un scénario de test côté hôte que vous pouvez utiliser pour effectuer ces actions.
Pour appeler l'API de réinitialisation du port USB, utilisez la commande adb shell
(#svc usb resetUsbPort
).
Vérifiez que l'appareil sous test (DUT) peut se déconnecter et se reconnecter.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]