如需支持 USB 硬件抽象层 (HAL) API,设备制造商必须实现对应的 USB HAL 版本。如需使用 USB HAL API,需要具有系统特权的应用。
USB HAL 支持 USB Port Reset API,该 API 要求实现 USB HAL v2.0,适用于搭载 Android 13 及更高版本的设备。使用该 API 可以重置与所连主机之间的 USB 连接。
查找 USB HAL 及其 API
设备制造商必须实现 USB HAL 才能支持这些 API。
如需查找 USB HAL 的默认实现,请使用以下路径:
版本 AIDL(最新):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
如需查找硬件接口头文件,请使用以下路径:
版本 AIDL(最新):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
如需查找这些 API,请使用以下路径来定位到 AIDL 头文件下的 API。此路径也是该 API 的 Android 框架入口点:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
实现 USB HAL
如需使用 USB HAL API,请:
实现正确的 USB HAL 版本。不需要实现系统界面。
通过重置目标设备与主机之间的 USB 连接,为 USB Port Reset API 实现 USB AIDL HAL。
了解 USB HAL API 架构
USB HAL API 内置在 android.hardware.usb
软件包中,并利用 USB HAL 与设备进行交互。下图详细介绍了该 API 的架构。
USB Port Reset API
下图展示了框架中 USB Port Reset API 的代码流,包括 USB HAL 的实现。
图 1.1 USB Port Reseat API 代码流示例。
验证您的实现
每个 USB HAL 版本及其对应的 API 都与供应商测试套件 (VTS) 中的测试用例关联。
USB Port Reset API
如需查找 USB Port Reset API 的 VTS 测试用例,请前往:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
为 USB HAL v1.2 实现的 VTS 测试用例是一种主机端测试用例,可供您用来执行这些操作。
如需调用 USB Port Reset API,请使用
adb shell
命令 (#svc usb resetUsbPort
)。确认被测设备 (DUT) 可以断开连接并重新连接。