หากต้องการรองรับ 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 กับโฮสต์ที่เชื่อมต่อ
ค้นหา HAL ของ USB และ 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 สำหรับ API ด้วย
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
ติดตั้งใช้งาน HAL ของ USB
หากต้องการใช้ USB HAL API ให้ติดตั้งใช้งาน
เวอร์ชัน USB HAL ที่ถูกต้อง ไม่จำเป็นต้องใช้ UI ของระบบ
HAL ของ AIDL สำหรับ USB สำหรับ API การรีเซ็ตพอร์ต USB โดยการรีเซ็ตการเชื่อมต่อ USB ระหว่างอุปกรณ์เป้าหมายกับโฮสต์
ทำความเข้าใจสถาปัตยกรรม API ของ USB HAL
USB HAL API สร้างขึ้นในแพ็กเกจ android.hardware.usb
และใช้ประโยชน์จาก USB HAL เพื่อโต้ตอบกับอุปกรณ์ รายละเอียดเกี่ยวกับสถาปัตยกรรมของ API จะแสดงในรูปภาพด้านล่าง
USB Port Reset API
รูปภาพต่อไปนี้แสดงโฟลว์ของโค้ดของ USB Port Reset API ในเฟรมเวิร์ก ซึ่งรวมถึงการใช้งาน USB HAL
รูปที่ 1.1 ตัวอย่างขั้นตอนโค้ดของ API การเสียบพอร์ต USB อีกครั้ง
ตรวจสอบการติดตั้งใช้งาน
HAL USB แต่ละเวอร์ชันและ 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
command (#svc usb resetUsbPort
)ตรวจสอบว่าอุปกรณ์ภายใต้การทดสอบ (DUT) สามารถยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้งได้