ภาพรวมโฮสต์ USB และอุปกรณ์เสริม

Android รองรับอุปกรณ์ต่อพ่วง USB และอุปกรณ์เสริม USB ของ Android ที่หลากหลาย (ฮาร์ดแวร์ที่ใช้โปรโตคอลอุปกรณ์เสริมของ Android) ผ่าน 2 โหมด ได้แก่ อุปกรณ์เสริม USB และโฮสต์ USB ในโหมดอุปกรณ์เสริม USB ฮาร์ดแวร์ USB ภายนอกจะทำหน้าที่เป็น โฮสต์ USB ตัวอย่างอุปกรณ์เสริมมีดังนี้

  • ตัวควบคุมหุ่นยนต์
  • แท่นชาร์จ
  • อุปกรณ์วินิจฉัยและอุปกรณ์ดนตรี
  • คีออสก์
  • เครื่องอ่านบัตร

และอื่นๆ อีกมากมาย ซึ่งจะช่วยให้อุปกรณ์ที่ใช้ Android ที่ไม่มีความสามารถของโฮสต์ โต้ตอบกับฮาร์ดแวร์ USB ได้ อุปกรณ์เสริม USB ของ Android ต้องออกแบบมาให้ใช้ได้กับอุปกรณ์ที่ใช้ Android และต้องเป็นไปตามโปรโตคอลการสื่อสารของอุปกรณ์เสริม Android ใน โหมดโฮสต์ USB อุปกรณ์ที่ใช้ Android จะทำหน้าที่เป็นโฮสต์ ตัวอย่างอุปกรณ์ ได้แก่ กล้องดิจิทัล แป้นพิมพ์ เมาส์ และอุปกรณ์ควบคุมเกม อุปกรณ์ USB ที่ ออกแบบมาสำหรับแอปพลิเคชันและสภาพแวดล้อมที่หลากหลายยังคง โต้ตอบกับแอปพลิเคชัน Android ที่สื่อสารกับ อุปกรณ์ได้อย่างถูกต้อง

รูปที่ 1 แสดงความแตกต่างระหว่าง 2 โหมด เมื่ออุปกรณ์ที่ใช้ Android อยู่ในโหมดโฮสต์ อุปกรณ์จะทำหน้าที่เป็นโฮสต์ USB และจ่ายไฟให้กับบัส เมื่ออุปกรณ์ที่ใช้ Android อยู่ในโหมดอุปกรณ์เสริม USB ฮาร์ดแวร์ USB ที่เชื่อมต่อ (อุปกรณ์เสริม USB ของ Android ในกรณีนี้) จะทำหน้าที่เป็นโฮสต์และจ่ายไฟให้กับบัส

แผนภาพที่แสดงความแตกต่างระหว่างโหมดโฮสต์และโหมดอุปกรณ์เสริม

รูปที่ 1 โหมดโฮสต์และอุปกรณ์เสริม USB

แพลตฟอร์ม Android 3.1 (API ระดับ 12) ขึ้นไปรองรับโหมดอุปกรณ์เสริม USB และโฮสต์โดยตรง นอกจากนี้ โหมดอุปกรณ์เสริม USB ยังได้รับการพอร์ตไปยัง Android 2.3.4 (API ระดับ 10) เป็นไลบรารีเสริมเพื่อรองรับอุปกรณ์ที่หลากหลายมากขึ้น ผู้ผลิตอุปกรณ์สามารถเลือกได้ว่าจะรวมไลบรารีส่วนเสริมไว้ในอิมเมจระบบของอุปกรณ์หรือไม่

หมายเหตุ: การรองรับโหมดโฮสต์ USB และโหมดอุปกรณ์เสริมจะขึ้นอยู่กับฮาร์ดแวร์ของอุปกรณ์ในท้ายที่สุด ไม่ว่าจะเป็นระดับแพลตฟอร์มใดก็ตาม คุณสามารถกรองอุปกรณ์ ที่รองรับโฮสต์ USB และอุปกรณ์เสริมผ่านองค์ประกอบ <uses-feature> ได้ ดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับอุปกรณ์เสริมและโฮสต์ USB

ข้อควรพิจารณาในการแก้ไขข้อบกพร่อง

เมื่อแก้ไขข้อบกพร่องของแอปพลิเคชันที่ใช้ฟีเจอร์อุปกรณ์เสริมหรือโฮสต์ USB คุณมักจะเชื่อมต่อฮาร์ดแวร์ USB กับอุปกรณ์ที่ใช้ Android ซึ่งจะ ป้องกันไม่ให้คุณเชื่อมต่อ adb กับอุปกรณ์ที่ใช้ Android ผ่าน USB คุณยังคงเข้าถึง adb ผ่านการเชื่อมต่อเครือข่ายได้ วิธีเปิดใช้ adb ผ่านการเชื่อมต่อเครือข่าย

  1. เชื่อมต่ออุปกรณ์ที่ใช้ Android กับคอมพิวเตอร์โดยใช้ USB
  2. จากไดเรกทอรี platform-tools/ ของ SDK ให้ป้อน adb tcpip 5555 ที่ Command Prompt
  3. ป้อน adb connect <device-ip-address>:5555 ตอนนี้คุณควรเชื่อมต่อกับ อุปกรณ์ที่ใช้ Android และออกคำสั่ง adb ตามปกติได้แล้ว เช่น adb logcat
  4. หากต้องการตั้งค่าอุปกรณ์ให้ฟังผ่าน USB ให้ป้อน adb usb