API สำหรับรีเซ็ตพอร์ต USB

ผู้ผลิตอุปกรณ์ต้องใช้เวอร์ชัน 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

  1. หากต้องการดูการใช้งาน USB HAL เริ่มต้น ให้ใช้เส้นทางต่อไปนี้

    เวอร์ชัน AIDL (ล่าสุด): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. หากต้องการค้นหาไฟล์ส่วนหัวอินเทอร์เฟซฮาร์ดแวร์ ให้ใช้เส้นทางต่อไปนี้

    เวอร์ชัน AIDL (ล่าสุด): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. หากต้องการค้นหา API ให้ใช้เส้นทางต่อไปนี้เพื่อค้นหา API ในส่วนไฟล์ส่วนหัว AIDL เส้นทางนี้ยังเป็นจุดแรกเข้าของเฟรมเวิร์ก Android สําหรับ API ด้วย

    android.hardware.usb: <aosp>/core/java/android/hardware/usb

ติดตั้งใช้งาน HAL ของ USB

หากต้องการทํางานกับ USB HAL API ให้ใช้อุปกรณ์ต่อไปนี้

  1. เวอร์ชัน USB HAL ที่ถูกต้อง ไม่จำเป็นต้องมีการใช้ UI ของระบบ

  2. 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

ตัวอย่างลำดับการทำงานของโค้ด API สำหรับการเสียบพอร์ต USB อีกครั้ง

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