หากต้องการรองรับ 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 ของ 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
ติดตั้งใช้งาน 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 มีอยู่ในรูปภาพด้านล่าง
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) ยกเลิกการเชื่อมต่อและเชื่อมต่ออีกครั้งได้