แอพคู่หูสตรีมมิ่ง

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

สถาปัตยกรรม

ตั้งแต่ Android 13 เป็นต้นไป Virtual Device Manager ใหม่และ Companion Device Manager (CDM) จะสร้างองค์ประกอบสำคัญเพื่อรองรับการสตรีมแอปและการโต้ตอบกับอุปกรณ์ที่เชื่อมต่อระยะไกล

ตัวจัดการอุปกรณ์เสมือน

การสตรีมแอปทำงานโดยการใช้ประโยชน์จาก จอแสดงผลเสมือน ตัวจัดการอุปกรณ์เสมือนจะสร้างจอแสดงผลเสมือนที่แยกจากจอแสดงผลหลักที่มองเห็นได้ เมื่อผู้ใช้ยินยอมที่จะเริ่มสตรีมแอป แอปจะถูกเปิดหรือถ่ายโอนไปยังจอแสดงผลเสมือน เนื้อหาของจอแสดงผลเสมือนจะถูกถ่ายโอนในสตรีมวิดีโอไปยังอุปกรณ์ที่เชื่อมต่อที่จะแสดง

Virtual Device Manager มี API ที่เปิดใช้งานการสร้าง การลงทะเบียน และการจัดการอินสแตนซ์ VirtualDevice

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

  • การสร้างอินสแตนซ์ VirtualDisplay ที่ตั้งใจจะแสดงบนจอแสดงผลของอุปกรณ์ที่เชื่อมต่อ
  • การส่งกระแสข้อมูลเสียงระยะไกล เช่น จากไมโครโฟนของอุปกรณ์ที่เชื่อมต่อ ลงในอุปกรณ์ภายในเพื่อการเล่น
  • การฉีดเหตุการณ์อินพุตระยะไกล เช่น จากแป้นพิมพ์ของอุปกรณ์ที่เชื่อมต่อ ลงในอุปกรณ์ภายในเพื่อการเล่น

ตัวจัดการอุปกรณ์สหาย

CDM จัดการสถานะการเชื่อมต่อและบังคับใช้ข้อกำหนดบทบาทที่ต้องปฏิบัติตามเพื่อเปิดใช้การสตรีมแอป

รูปภาพต่อไปนี้แสดงการโต้ตอบระหว่างอุปกรณ์ภายในและอุปกรณ์ระยะไกลระหว่างการสตรีมแอพ:

app-streaming-interaction

รูปที่ 1 การโต้ตอบระหว่างอุปกรณ์ภายในและอุปกรณ์ระยะไกลระหว่างการสตรีมแอพ

การใช้งานบทบาทการสตรีมแอปที่แสดงร่วม

OEM สามารถใช้แอปที่มีบทบาท COMPANION_DEVICE_APP_STREAMING เพื่อเปิดใช้งานประสบการณ์ข้ามอุปกรณ์ที่สมบูรณ์และปลอดภัยบนอุปกรณ์ของตน

หากต้องการสร้างอุปกรณ์เสมือนเพื่อเปิดใช้งานการสตรีมแอป แอปจะต้องมีบทบาทในบทบาท COMPANION_DEVICE_APP_STREAMING เมื่อมอบบทบาทแล้ว แอปจะได้รับสิทธิ์ CREATE_VIRTUAL_DEVICE ซึ่งทำให้แอปสามารถสร้างอุปกรณ์เสมือนได้ ผู้ถือบทบาทคาดว่าจะใช้การสตรีมแอปโดยการสร้างอินสแตนซ์ VirtualDevice ที่ทำหน้าที่เป็นพร็อกซีสำหรับอุปกรณ์ที่เชื่อมต่อ คลาส VirtualDevice จัดเตรียมวิธีการที่เปิดใช้งานการแยกพื้นผิวแบบคอมโพสิตของจอแสดงผลเสมือน ซึ่งเหมาะสำหรับการสตรีมไปยังอุปกรณ์อื่น คลาส VirtualDevice ยังมี API สำหรับการฉีดเหตุการณ์อินพุตที่เกิดขึ้นบนอุปกรณ์ระยะไกลไปยังอุปกรณ์ภายในเครื่อง ซึ่งช่วยให้แอปที่ทำงานบนอุปกรณ์ภายในเครื่องปรากฏราวกับว่ากำลังทำงานบนอุปกรณ์ระยะไกลโดยกำเนิด

ทำตามขั้นตอนเหล่านี้เพื่อใช้บทบาทการสตรีมแอปที่แสดงร่วม:

  1. สร้างแอปที่ขอสิทธิ์ REQUEST_COMPANION_PROFILE_APP_STREAMING ในรายการ

  2. แจ้งให้ผู้ใช้ให้สิทธิ์แอปในการสตรีมแอป

  3. สร้างอินสแตนซ์ CDM AssociationRequest เพื่อขอบทบาท COMPANION_DEVICE_APP_STREAMING แอปได้รับสิทธิ์ CREATE_VIRTUAL_DEVICE เมื่อได้รับบทบาท

  4. เรียก VirtualDeviceManager#create() เพื่อสร้างอินสแตนซ์ VirtualDevice ด้วยอินสแตนซ์ VirtualDevice แอปสามารถสร้างและจัดการจอแสดงผลเสมือนและอินพุตเสมือนได้

  5. เปิดตัวความตั้งใจที่รอดำเนินการของการแจ้งเตือนบนจอแสดงผลเสมือนและสร้างการจับภาพวิดีโอของจอแสดงผลนั้น

  6. สร้างการเชื่อมต่อกับอุปกรณ์ที่เชื่อมต่อและสตรีมจอแสดงผลเสมือนไปยังอุปกรณ์ที่เชื่อมต่อ

  7. แทรกเหตุการณ์อินพุตกลับจากอุปกรณ์ที่เชื่อมต่อไปยังอุปกรณ์ภายในผ่าน VirtualDevice API

  8. เมื่อผู้ใช้ปิดแอปสตรีมมิ่งบนอุปกรณ์ระยะไกล ให้สิ้นสุดการสตรีมและทำลายอินสแตนซ์ VirtualDevice ณ จุดนี้ แอพสตรีมมิ่งก่อนหน้านี้จะทำงานในพื้นหลังบนอุปกรณ์ภายในเครื่อง และการเชื่อมต่อถูกปิด

  9. หากจำเป็น ให้รอสัญญาณเพิ่มเติมจากอุปกรณ์ที่เชื่อมต่อเพื่อรีสตาร์ทการสตรีมแอป

แอปมีหน้าที่รับผิดชอบในการเชื่อมต่อกับอุปกรณ์ระยะไกล รายงานสถานะการเชื่อมต่อกับ CDM และบังคับใช้ข้อกำหนดด้านความปลอดภัยตามที่อธิบายไว้ใน CDD

ข้อกำหนดของผู้ถือบทบาท COMPANION_DEVICE_APP_STREAMING

CDM มอบบทบาท COMPANION_DEVICE_APP_STREAMING เมื่อผู้ใช้เชื่อมโยงแอปสตรีมมิงแอปกับอุปกรณ์ บทบาทนี้เชื่อมโยงกับโปรไฟล์อุปกรณ์ ดังนั้นจึงสามารถควบคุมได้ว่าแอปใดบ้างที่สามารถเพิ่มลงใน Play Store ที่ตรงกับโปรไฟล์นี้ได้ ดู บทบาทของ Android สำหรับรายการข้อกำหนดของบทบาท COMPANION_DEVICE_APP_STREAMING ติดต่อผู้ติดต่อของ Google เพื่อขอข้อมูลเพิ่มเติม

COMPANION_DEVICE_APP_STREAMING ความสามารถของผู้ถือบทบาท

ในการสตรีมแอป บทบาท COMPANION_DEVICE_APP_STREAMING จะถือว่าแอปผู้ถือบทบาทมีความสามารถและลักษณะการทำงานดังต่อไปนี้:

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