Untuk mendukung API Hardware Abstraction Layer (HAL) USB, produsen perangkat harus menerapkan versi HAL USB yang sesuai. Untuk menggunakan USB HAL API, aplikasi dengan hak istimewa sistem diperlukan.
HAL USB mendukung USB Port Reset API, yang memerlukan HAL USB v2.0 dan tersedia untuk perangkat yang menjalankan Android 13 dan yang lebih tinggi. Gunakan API ini untuk mereset koneksi USB dengan host yang terhubung.
Menemukan HAL USB dan API-nya
Produsen perangkat harus menerapkan HAL USB untuk mendukung API.
Untuk menemukan implementasi default USB HAL, gunakan jalur berikut:
Version AIDL (terbaru):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Untuk menemukan file header antarmuka hardware, gunakan jalur berikut:
Version AIDL (terbaru):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Untuk menemukan API, gunakan jalur berikut untuk menemukan API di bawah file header AIDL. Jalur ini juga merupakan titik entri Android Framework untuk API:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
Menerapkan HAL USB
Untuk menggunakan USB HAL API, terapkan:
Versi HAL USB yang benar. Tidak diperlukan penerapan UI sistem.
HAL AIDL USB untuk USB Port Reset API dengan mereset koneksi USB antara perangkat target dan host.
Memahami arsitektur USB HAL API
USB HAL API dibangun ke dalam paket android.hardware.usb
dan memanfaatkan USB HAL untuk berinteraksi dengan perangkat. Detail tentang arsitektur untuk API disediakan dalam gambar di bawah.
USB Port Reset API
Gambar berikut mengilustrasikan alur kode USB Port Reset API dalam framework, termasuk penerapan USB HAL.
Gambar 1.1 Alur kode contoh USB Port Reseat API.
Memvalidasi penerapan
Setiap versi USB HAL dan API yang sesuai dikaitkan dengan kasus pengujian di Vendor Test Suite (VTS).
USB Port Reset API
Untuk menemukan kasus pengujian VTS untuk USB Port Reset API, buka:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
Kasus pengujian VTS untuk USB HAL v1.2 adalah kasus pengujian sisi host yang dapat Anda gunakan untuk melakukan tindakan ini.
Untuk memanggil USB Port Reset API, gunakan perintah
adb shell
(#svc usb resetUsbPort
).Pastikan perangkat yang sedang diuji (DUT) dapat berhenti menghubungkan dan menghubungkan kembali.