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

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

สถาปัตยกรรม

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

Virtual Device Manager

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

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

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

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

Companion Device Manager

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 ในไฟล์ Manifest

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

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

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

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

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

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

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

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

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

ข้อกำหนดสำหรับผู้ดำรงบทบาท COMPANION_DEVICE_APP_STREAMING

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

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

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

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