Untuk mendukung USB Hardware Abstraction Layer (HAL) API, produsen perangkat harus menerapkan versi USB HAL yang sesuai. Untuk menggunakan USB HAL API, aplikasi dengan hak istimewa sistem diperlukan.
USB HAL mendukung USB Port Reset API, yang memerlukan USB HAL 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 USB HAL dan API-nya
Produsen perangkat harus menerapkan USB HAL untuk mendukung API.
Untuk menemukan penerapan default USB HAL, gunakan jalur berikut:
Versi AIDL (terbaru):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/Untuk menemukan file header antarmuka hardware, gunakan jalur berikut:
Versi AIDL (terbaru):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.halUntuk 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 USB HAL
Untuk menggunakan USB HAL API, terapkan:
Versi USB HAL yang benar. Tidak ada penerapan UI sistem yang diperlukan.
USB AIDL HAL untuk USB Port Reset API dengan mereset koneksi USB antara perangkat target dan host.
Memahami arsitektur USB HAL API
USB HAL API dibuat 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 Contoh alur kode USB Port Reseat API.
Memvalidasi penerapan Anda
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 diuji (DUT) dapat terputus dan terhubung kembali.