در 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 شامل APIهایی است که ایجاد، ثبت و مدیریت نمونه های VirtualDevice
را امکان پذیر می کند.
یک نمونه VirtualDevice
یک پروکسی برای دستگاه متصل و قابلیت های آن است. یک نمونه VirtualDevice
دستگاه متصل را قادر میسازد تا با انجام کارهای زیر یک جریان برنامه ورودی را دریافت، نمایش دهد و با آن تعامل داشته باشد:
- ایجاد یک نمونه
VirtualDisplay
که برای نمایش در صفحه نمایش دستگاه متصل است. - تزریق یک جریان صوتی از راه دور، مانند میکروفون دستگاه متصل، به دستگاه محلی برای پخش.
- تزریق رویدادهای ورودی از راه دور، مانند صفحه کلید دستگاه متصل، به دستگاه محلی برای پخش.
مدیر دستگاه همراه
CDM وضعیت اتصال را مدیریت می کند و الزامات نقشی را که برای فعال کردن پخش برنامه باید برآورده شوند، اعمال می کند.
شکل زیر تعامل بین دستگاه محلی و راه دور را در طول پخش برنامه نشان می دهد:
شکل 1. تعامل بین دستگاه های محلی و راه دور در طول پخش برنامه
اجرای نقش پخش برنامه همراه
OEMها میتوانند برنامهای را با نقش COMPANION_DEVICE_APP_STREAMING
پیادهسازی کنند تا تجربهای غنی و امن بین دستگاهها را در دستگاههای خود ایجاد کنند.
برای ایجاد یک دستگاه مجازی برای فعال کردن پخش برنامه، یک برنامه باید دارای نقش COMPANION_DEVICE_APP_STREAMING
باشد. وقتی نقش اعطا شد، برنامه مجوز CREATE_VIRTUAL_DEVICE
را دریافت می کند که به برنامه امکان می دهد یک دستگاه مجازی ایجاد کند. از دارندگان نقش انتظار می رود با ایجاد یک نمونه VirtualDevice
که به عنوان یک پروکسی برای یک دستگاه متصل عمل می کند، جریان برنامه را اجرا کنند. کلاس VirtualDevice
روش هایی را ارائه می دهد که استخراج یک سطح ترکیبی از یک نمایشگر مجازی را امکان پذیر می کند، مناسب برای پخش جریانی به دستگاه دیگر. کلاس VirtualDevice
همچنین APIهایی را برای تزریق رویدادهای ورودی که در یک دستگاه راه دور رخ میدهند به دستگاه محلی ارائه میکند، و به برنامهای که در یک دستگاه محلی اجرا میشود، این امکان را میدهد تا بهگونهای به نظر برسد که گویی به صورت بومی در یک دستگاه راه دور اجرا میشود.
این مراحل را برای اجرای نقش پخش برنامه همراه دنبال کنید:
برنامه ای ایجاد کنید که مجوز
REQUEST_COMPANION_PROFILE_APP_STREAMING
را در مانیفست درخواست کند.از کاربر بخواهید به برنامه اجازه اجرای پخش جریانی برنامه را بدهد.
یک نمونه CDM
AssociationRequest
برای درخواست نقشCOMPANION_DEVICE_APP_STREAMING
ایجاد کنید. وقتی نقش اعطا شد، برنامه مجوزCREATE_VIRTUAL_DEVICE
را دریافت می کند.برای ایجاد یک نمونه
VirtualDevice
VirtualDeviceManager#create()
فراخوانی کنید. با یک نمونهVirtualDevice
، برنامه می تواند نمایشگرهای مجازی و ورودی های مجازی را ایجاد و مدیریت کند.هدف معلق اعلان را بر روی صفحه نمایش مجازی راه اندازی کنید و از آن نمایشگر فیلم برداری کنید.
یک اتصال به دستگاه متصل ایجاد کنید و نمایش مجازی را به دستگاه متصل پخش کنید.
از طریق
VirtualDevice
API رویدادهای ورودی را از دستگاه متصل به دستگاه محلی تزریق کنید.هنگامی که کاربر برنامه پخش جریانی را در دستگاه راه دور می بندد، جریان را پایان دهید و نمونه
VirtualDevice
را از بین ببرید. در این مرحله، برنامه استریم قبلی در پسزمینه دستگاه محلی اجرا میشود و اتصال بسته میشود.در صورت نیاز، منتظر سیگنال های بیشتری از دستگاه متصل باشید تا پخش جریانی برنامه را مجدداً راه اندازی کنید.
این برنامه مسئول اتصال به دستگاه راه دور، گزارش وضعیت اتصال به CDM و اجرای الزامات امنیتی همانطور که در CDD توضیح داده شده است.
الزامات دارنده نقش COMPANION_DEVICE_APP_STREAMING
هنگامی که کاربر یک برنامه پخش جریانی برنامه را با دستگاهی مرتبط می کند، CDM نقش COMPANION_DEVICE_APP_STREAMING
را اعطا می کند. این نقش با نمایه دستگاه مرتبط است، بنابراین کنترلی وجود دارد که کدام برنامهها را میتوان به فروشگاه Play اضافه کرد که با این نمایه مطابقت دارند. نقشهای Android را برای فهرستی از الزامات نقش COMPANION_DEVICE_APP_STREAMING
ببینید. برای اطلاعات بیشتر با نقطه تماس Google خود تماس بگیرید.
قابلیت های دارنده نقش COMPANION_DEVICE_APP_STREAMING
برای اجرای جریان برنامه، نقش COMPANION_DEVICE_APP_STREAMING
فرض میکند که برنامه دارنده نقش دارای قابلیتها و رفتارهای زیر است:
- ایجاد و مدیریت اتصالات به دستگاه های دیگر.
- نمایشگرهای مجازی قابل اعتماد، از جمله نمایشگرهای قفل نشده را به شرح زیر ایجاد و مدیریت کنید:
- فعالیت ها را در صفحه نمایش مجازی شروع کنید.
- رویدادهایی را که در یک برنامه پخش جریانی روی یک دستگاه متصل اتفاق میافتند، دوباره در دستگاه محلی تزریق کنید، مانند پخش یک رویداد لمسی در رایانه لوحی در همان مختصات تلفن.
- داده های صوتی را از برنامه پخش شده ضبط کنید.
- هنگامی که یک برنامه پخش جریانی از میکروفون استفاده می کند، جریان میکروفون دستگاه محلی را با جریان میکروفون دستگاه متصل جایگزین کنید.
- در حالی که یک برنامه پخش جریانی از دوربین استفاده می کند، جریان دوربین دستگاه محلی را با جریان دوربین دستگاه متصل جایگزین کنید.
- اعلانها را از دستگاه محلی به دستگاه متصل مدیریت و پخش کنید و در مورد اعلانها اقداماتی انجام دهید.
- فراداده را از دستگاه محلی، مانند لیست برنامه های موجود در دستگاه محلی، به دستگاه متصل پخش کنید.
- درخواست تأیید دستگاه