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.
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 HAL USB dan API-nya
Produsen perangkat harus mengimplementasikan USB HAL untuk mendukung API ini.
Untuk menemukan implementasi default USB HAL, gunakan jalur berikut:
AIDL Versi (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.hal
Untuk menemukan API, gunakan jalur berikut untuk menemukan API di bawah file header AIDL. Jalur ini juga merupakan titik entri Framework Android untuk API:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
Mengimplementasikan USB HAL
Untuk menggunakan USB HAL API, terapkan:
Perbaiki versi USB HAL. Implementasi UI sistem tidak diperlukan.
USB AIDL HAL untuk API Reset Port USB dengan mereset koneksi USB antara perangkat target dan host.
Memahami arsitektur USB HAL API
USB HAL API disertakan ke dalam paket android.hardware.usb
dan memanfaatkan USB HAL untuk berinteraksi dengan perangkat. Detail tentang arsitektur untuk API diberikan dalam gambar di bawah.
USB Port Reset API
Gambar berikut mengilustrasikan alur kode USB Port Reset API dalam framework, termasuk implementasi USB HAL.
Gambar 1.1 Contoh alur kode USB Port Reseat API.
Memvalidasi penerapan
Setiap versi USB HAL dan API terkaitnya 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 terputus dan terhubung kembali.