A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
API de restablecimiento de puertos USB
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Para admitir la API de la capa de abstracción de hardware (HAL) de USB, los fabricantes de dispositivos deben implementar la versión correspondiente de la HAL de USB. Para usar la API de HAL de USB, se requiere una app con privilegios del sistema.
El HAL de USB admite la API de restablecimiento de puertos USB, que requiere el HAL de USB v2.0 y está disponible para dispositivos que ejecutan Android 13 y versiones posteriores. Usa esta API para restablecer la conexión USB con el host conectado.
Busca el HAL de USB y sus APIs
Los fabricantes de dispositivos deben implementar el HAL de USB para admitir las APIs.
Para encontrar la implementación predeterminada del sistema HAL de USB, usa las siguientes rutas de acceso:
Versión de AIDL (más reciente):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Para encontrar el archivo de encabezado de la interfaz de hardware, usa la siguiente ruta de acceso:
Versión AIDL (más reciente):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Para encontrar las APIs, usa la siguiente ruta para ubicarlas en el archivo de encabezado AIDL. Esta ruta de acceso también es el punto de entrada del framework de Android para la API:
android.hardware.usb
:
<aosp>/core/java/android/hardware/usb
Implementa el HAL de USB
Para trabajar con la API de HAL de USB, implementa lo siguiente:
Se corrigió la versión de HAL de USB. No se requiere la implementación de la IU del sistema.
HAL de AIDL USB para la API de restablecimiento de puertos USB restablece la conexión USB entre el dispositivo de destino y el host.
Comprende la arquitectura de la API de HAL de USB
La API de HAL de USB está integrada en el paquete android.hardware.usb
y aprovecha el HAL de USB para interactuar con el dispositivo. En la siguiente imagen, se proporcionan detalles sobre la arquitectura de la API.
API de restablecimiento de puertos USB
En la siguiente imagen, se ilustra el flujo de código de la API de USB Port Reset en un framework, incluida la implementación del HAL de USB.
Figura 1.1: Flujo de código de muestra de la API de USB Port Reseat.
Valida tu implementación
Cada versión de HAL de USB y su API correspondiente están asociadas con un caso de prueba en el conjunto de pruebas del proveedor (VTS).
API de restablecimiento de puertos USB
Para encontrar el caso de prueba de VTS de la API de USB Port Reset, ve a:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
El caso de prueba de VTS para el HAL de USB v1.2 es un caso de prueba del host que puedes usar para realizar estas acciones.
Para invocar la API de USB Port Reset, usa el comando adb shell
(#svc usb resetUsbPort
).
Confirma que el dispositivo en prueba (DUT) se pueda desconectar y volver a conectar.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]