USB 端口重置 API

为了支持 USB 硬件抽象层 (HAL) API,设备制造商必须实现相应的 USB HAL 版本。要使用 USB HAL API,需要系统特权应用。

USB HAL 支持 USB 端口重置 API,该 API 需要 USB HAL v2.0,并且适用于运行 Android 13 及更高版本的设备。使用此 API 可重置与连接主机的 USB 连接。

查找 USB HAL 及其 API

设备制造商必须实现 USB HAL 才能支持这些 API。

  1. 要查找 USB HAL 的默认实现,请使用以下路径

    版本 AIDL(最新): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. 要查找硬件接口标头文件,请使用以下路径

    版本 AIDL(最新): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. 要查找 API,请使用以下路径在 AIDL 标头文件下找到这些 API。此路径也是 API 的 Android 框架入口点

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

实现 USB HAL

要使用 USB HAL API,请实现

  1. 正确的 USB HAL 版本。不需要系统 UI 实现。

  2. 用于 USB 端口重置 API 的 USB AIDL HAL,方法是重置目标设备和主机之间的 USB 连接。

了解 USB HAL API 架构

USB HAL API 内置于 android.hardware.usb 软件包中,并利用 USB HAL 与设备进行互动。下图提供了有关 API 架构的详细信息。

USB 端口重置 API

下图说明了框架中 USB 端口重置 API 的代码流,包括 USB HAL 的实现。

Sample USB Port Reseat API code flow

图 1.1 USB 端口重新连接 API 代码流示例。

验证您的实现

每个 USB HAL 版本及其对应的 API 都与供应商测试套件 (VTS) 中的一个测试用例相关联。

USB 端口重置 API

要查找 USB 端口重置 API 的 VTS 测试用例,请转到

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

USB HAL v1.2 的 VTS 测试用例是一个主机端测试用例,您可以使用它来执行以下操作。

  • 要调用 USB 端口重置 API,请使用 adb shell 命令 (#svc usb resetUsbPort)。

  • 确认被测设备 (DUT) 可以断开连接并重新连接。