USB Port Reset API

หากต้องการรองรับ USB ระดับชั้นการจัดการฮาร์ดแวร์โดยตรง (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

  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 Framework สำหรับ 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 ระหว่างอุปกรณ์เป้าหมายกับโฮสต์

ทำความเข้าใจสถาปัตยกรรม API ของ USB HAL

USB HAL API สร้างขึ้นในแพ็กเกจ android.hardware.usb และใช้ประโยชน์จาก USB HAL เพื่อโต้ตอบกับอุปกรณ์ รายละเอียดเกี่ยวกับสถาปัตยกรรมของ API จะแสดงในรูปภาพด้านล่าง

API การรีเซ็ตพอร์ต USB

รูปภาพต่อไปนี้แสดงโฟลว์ของโค้ดของ USB Port Reset API ในเฟรมเวิร์ก ซึ่งรวมถึงการใช้งาน USB HAL

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

รูปที่ 1.1 โฟลว์โค้ดตัวอย่างของ API การเสียบพอร์ต USB อีกครั้ง

ตรวจสอบการติดตั้งใช้งาน

HAL USB แต่ละเวอร์ชันและ API ที่เกี่ยวข้องจะเชื่อมโยงกับกรณีทดสอบใน ชุดทดสอบของผู้ให้บริการ (VTS)

API การรีเซ็ตพอร์ต USB

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