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

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

สถาปัตยกรรม

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

เครื่องมือจัดการอุปกรณ์เสมือน

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

เครื่องมือจัดการอุปกรณ์เสมือนมี 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. เปิด Intent ที่รอดำเนินการของการแจ้งเตือนบนจอแสดงผลเสมือนจริง และสร้างวิดีโอที่บันทึกจากจอแสดงผลนั้น

  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 จะถือว่าแอปของผู้ถือบทบาทมีความสามารถและลักษณะการทำงานต่อไปนี้

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