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