USBポートリセットAPIは、Android 11以降を実行しているデバイス用のAndroidオープンソースプロジェクト(AOSP)で利用可能なシステムAPIです。これを使用して、接続されているホストとのUSBガジェット接続をリセットします。 USBポートリセットAPIをサポートするには、デバイスメーカーはUSBガジェットHALV1.1を実装する必要があります。 USBポートリセットAPIを使用するには、システム特権アプリが必要です。
USBガジェットHALv1.1およびUSBポートリセットAPIの検索
デバイスメーカーは、USBポートリセットAPIをサポートするためにUSBガジェットHALv1.1を実装する必要があります。
- USB Gadget HAL v.1.1のデフォルトの実装を見つけるには、次のパスを使用します:
<aosp>/hardware/interfaces/usb/gadget/1.1/default/
- ハードウェアインターフェイスヘッダーファイルを見つけるには、次のパスを使用します:
<aosp>/hardware/interfaces/usb/gadget/1.1/IUsbGadget.hal
- USBポートリセットAPIを見つけるには、このパスを使用してAIDLヘッダーファイルの下にあるAPIを見つけます。このパスは、USBポートリセットAPIのAndroidFrameworkエントリポイントでもあります。
<aosp>/core/java/android/hardware/usb
ガジェットHALv1.1の実装
USBポートリセットAPIをサポートするには、USBガジェットHALv1.1を実装する必要があります。システムUIの実装は必要ありません。 USBポートリセットAPI用のUSBガジェットHALv1.1を実装するには、ターゲットデバイスとホスト間のUSB接続をリセットします。
USBポートリセットAPIコードフロー
次の図は、USBガジェットHALの実装を含む、フレームワークでのUSBポートリセットAPIのコードフローを示しています。
図1.USBポートリセットAPIコードフローの例
検証
次のパスに従って、USBポートリセットAPI用に実装されたVTSテストケースを見つけます。
<aosp>/test/vts-testcase/hal/usb/gadget/V1_1/
USBポートリセットAPIのVTSテストケースは、次のアクションを実行できるホスト側のテストケースです。
- adbシェルコマンド(
#svc usb resetUsbGadget
)を使用してUSBポートリセットAPIを呼び出します。 - テスト対象デバイス(DUT)が切断および再接続できるかどうかを確認します。