ผู้ผลิตอุปกรณ์ต้องใช้เวอร์ชัน USB HAL ที่สอดคล้องกันเพื่อรองรับ API ฮาร์ดแวร์ USB Abstraction Layer (HAL) หากต้องการใช้ USB HAL API คุณต้องมีแอปที่มีสิทธิ์ระดับระบบ
USB HAL รองรับ API การรีเซ็ตพอร์ต USB ซึ่งต้องใช้ USB HAL v2.0 และพร้อมใช้งานสำหรับอุปกรณ์ที่ใช้ Android 13 ขึ้นไป ใช้ API นี้เพื่อรีเซ็ตการเชื่อมต่อ USB กับโฮสต์ที่เชื่อมต่ออยู่
ค้นหา USB HAL และ API ของ HAL
ผู้ผลิตอุปกรณ์ต้องใช้ 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 ให้ใช้เส้นทางต่อไปนี้เพื่อค้นหา API ในส่วนไฟล์ส่วนหัว AIDL เส้นทางนี้ยังเป็นจุดแรกเข้าของเฟรมเวิร์ก Android สําหรับ API ด้วย
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
ติดตั้งใช้งาน HAL ของ USB
หากต้องการทํางานกับ USB HAL API ให้ใช้อุปกรณ์ต่อไปนี้
เวอร์ชัน USB HAL ที่ถูกต้อง ไม่จำเป็นต้องมีการใช้ UI ของระบบ
USB AIDL HAL สำหรับ USB Port Reset API โดยรีเซ็ตการเชื่อมต่อ USB ระหว่างอุปกรณ์เป้าหมายกับโฮสต์
ทำความเข้าใจสถาปัตยกรรม USB HAL API
USB HAL API ติดตั้งมาในแพ็กเกจ android.hardware.usb
และใช้ประโยชน์จาก USB HAL เพื่อโต้ตอบกับอุปกรณ์ รายละเอียดเกี่ยวกับสถาปัตยกรรมของ API มีอยู่ในรูปภาพด้านล่าง
USB Port Reset API
รูปภาพต่อไปนี้แสดงลำดับโค้ดของ USB Port Reset API ในเฟรมเวิร์ก รวมถึงการใช้งาน USB HAL
รูปที่ 1.1 ตัวอย่างขั้นตอนโค้ด API ของพอร์ต USB รีเซ็ต
ตรวจสอบการติดตั้งใช้งาน
USB HAL แต่ละเวอร์ชันและ API ที่เกี่ยวข้องจะเชื่อมโยงกับชุดทดสอบของผู้ให้บริการ (VTS)
USB Port Reset API
หากต้องการดูกรณีทดสอบ VTS สำหรับ USB Port Reset API ให้ไปที่
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
กรณีทดสอบ VTS สำหรับ USB HAL v1.2 เป็นกรณีทดสอบฝั่งโฮสต์ที่คุณสามารถใช้เพื่อดำเนินการเหล่านี้
หากต้องการเรียกใช้ USB Port Reset API ให้ใช้
adb shell
คำสั่ง (#svc usb resetUsbPort
)ตรวจสอบว่าอุปกรณ์ทดสอบ (DUT) ยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้งได้