USB Port Reset API

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

USB HAL 支持 USB 端口重置 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 AIDL HAL 用于 USB 端口重置 API,通过重置目标设备和主机之间的 USB 连接。

了解USB HAL API架构

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

USB端口重置API

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

USB 端口重置 API 代码流程示例

图 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) 可以断开并重新连接。