جاری‌سازی برنامه همپا

در Android 13، ویژگی جاری‌سازی برنامه به تلفن‌ها امکان می‌دهد برنامه‌هایشان را در دستگاه‌های متصل جاری‌سازی کنند و به آن دستگاه‌ها امکان می‌دهد با برنامه‌ها تعامل داشته باشند. نقش جدید COMPANION_DEVICE_APP_STREAMING به برنامه اجازه می‌دهد کارگزاران نیابتی برای دستگاه‌های دور متصل ایجاد و مدیریت کند تا برنامه‌ها را از دستگاه محلی به دستگاه دور جاری‌سازی کند. برنامه‌ای که نقش COMPANION_DEVICE_APP_STREAMING را دارد می‌تواند اجازه‌هایی برای ایجاد نمایشگر مجازی، راه‌اندازی برنامه در آن، و سپس جاری‌سازی ویدیو برنامه راه‌اندازی‌شده در دستگاهی دیگر دریافت کند. برنامه دارنده نقش همچنین می‌تواند رویدادهای ورودی و میکروفون دریافتی از دستگاه دور را به دستگاه محلی تزریق کند، انگار که آن دستگاه به‌عنوان یک دستگاه جانبی متصل شده است.

معماری

از Android 13، مدیر دستگاه مجازی جدید و مدیر دستگاه همراه (CDM) بلوک‌های ساختمانی کلیدی را برای پشتیبانی از جاری‌سازی برنامه و تعامل با دستگاه‌های متصل ازراه‌دور تشکیل می‌دهند.

مدیر دستگاه مجازی

جاری‌سازی برنامه با بهره‌گیری از نمایشگرهای مجازی کار می‌کند. «مدیر دستگاه مجازی» نمایشگر مجازی‌ای ایجاد می‌کند که از نمایشگر اصلی قابل‌مشاهده جدا است. وقتی کاربر موافقت می‌کند که جاری‌سازی برنامه شروع شود، برنامه در نمایشگر مجازی راه‌اندازی می‌شود یا به آن منتقل می‌شود. محتوای نمایشگر مجازی در یک جاری‌سازی ویدیو به دستگاه متصل منتقل می‌شود تا نمایش داده شود.

«مدیر دستگاه مجازی» شامل میاناهای برنامه‌سازی کاربردی است که ایجاد، ثبت، و مدیریت نمونه‌های VirtualDevice را امکان‌پذیر می‌کند.

نمونه VirtualDevice پراکسی‌ای برای دستگاه متصل‌شده و قابلیت‌های آن است. نمونه VirtualDevice به دستگاه متصل‌شده امکان می‌دهد تا با انجام کارهای زیر، جاری‌سازی برنامه ورودی را دریافت کند، نمایش دهد، و با آن تعامل داشته باشد:

  • درحال ایجاد نمونه‌ای VirtualDisplay که برای نمایش در نمایشگر دستگاه متصل درنظر گرفته شده است.
  • تزریق جاری‌سازی صوتی ازراه‌دور، مثلاً از میکروفون دستگاه متصل‌شده، به دستگاه محلی برای بازپخش.
  • تزریق رویدادهای ورودی از دور، مانند رویدادهای صفحه‌کلید دستگاه متصل، به دستگاه محلی برای بازپخش.

مدیر دستگاه همپا

‫CDM وضعیت اتصال‌پذیری را مدیریت می‌کند و الزامات نقش را که باید برای فعال کردن جاری‌سازی برنامه برآورده شوند اعمال می‌کند.

شکل زیر تعاملات بین دستگاه محلی و راه دور را درطول جاری‌سازی برنامه نشان می‌دهد:

تعامل با جاری‌سازی برنامه

شکل ۱. تعاملات بین دستگاه‌های محلی و ازراه‌دور درطول جاری‌سازی برنامه

پیاده‌سازی نقش جاری‌سازی برنامه همراه

تولیدکنندگان تجهیزات اصلی می‌توانند برنامه‌ای با نقش COMPANION_DEVICE_APP_STREAMING پیاده‌سازی کنند تا تجربه‌ای غنی و ایمن بین دستگاه‌ها در دستگاه‌هایشان فعال کنند.

برای ایجاد دستگاه مجازی جهت فعال کردن جاری‌سازی برنامه، برنامه باید دارنده نقش COMPANION_DEVICE_APP_STREAMING باشد. وقتی نقش اعطا می‌شود، برنامه اجازه CREATE_VIRTUAL_DEVICE را دریافت می‌کند که به برنامه امکان می‌دهد دستگاه مجازی ایجاد کند. از دارندگان نقش انتظار می‌رود که با ایجاد نمونه VirtualDevice که به‌عنوان پراکسی برای دستگاه متصل عمل می‌کند، جاری‌سازی برنامه را پیاده‌سازی کنند. کلاس VirtualDevice روش‌هایی را ارائه می‌دهد که امکان استخراج سطح ترکیبی نمایشگر مجازی را فراهم می‌کند و برای جاری‌سازی به دستگاه دیگر مناسب است. کلاس VirtualDevice همچنین میاناهای برنامه‌سازی کاربردی‌ای برای تزریق رویدادهای ورودی که در دستگاه ازراه‌دور رخ می‌دهند به دستگاه محلی ارائه می‌دهد، که به برنامه‌ای که در دستگاه محلی اجرا می‌شود امکان می‌دهد به‌گونه‌ای ظاهر شود که انگار به‌طور بومی در دستگاه ازراه‌دور اجرا می‌شود.

برای پیاده‌سازی نقش جاری‌سازی برنامه همراه، این مراحل را دنبال کنید:

  1. برنامه‌ای بسازید که اجازه REQUEST_COMPANION_PROFILE_APP_STREAMING را در مانیفست درخواست کند.

  2. از کاربر بخواهید به برنامه اجازه دهد جاری‌سازی برنامه را انجام دهد.

  3. برای درخواست نقش COMPANION_DEVICE_APP_STREAMING، نمونه CDM AssociationRequest ایجاد کنید. وقتی نقش اعطا می‌شود، برنامه اجازه CREATE_VIRTUAL_DEVICE را دریافت می‌کند.

  4. برای ایجاد نمونه VirtualDevice، VirtualDeviceManager#create() را فراخوانی کنید. با نمونه VirtualDevice، برنامه می‌تواند نمایشگرهای مجازی و ورودی‌های مجازی ایجاد و مدیریت کند.

  5. قصد معوق اعلان را در نمایشگر مجازی راه‌اندازی کنید و از آن نمایشگر فیلم ضبط کنید.

  6. اتصالی به دستگاه متصل‌شده ایجاد می‌کند و نمایشگر مجازی را به دستگاه متصل‌شده جاری‌سازی می‌کند.

  7. رویدادهای ورودی را از دستگاه متصل به دستگاه محلی ازطریق واسط‌های برنامه‌سازی کاربردی VirtualDevice تزریق می‌کند.

  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 فرض می‌کند که برنامه دارنده نقش قابلیت‌ها و رفتارهای زیر را دارد:

  • ایجاد و مدیریت اتصال به دستگاه‌های دیگر.
  • نمایشگرهای مجازی مطمئن، ازجمله نمایشگرهای قفل‌نشده، را به‌صورت زیر ایجاد و مدیریت کنید:
    • فعالیت‌ها را در نمایشگر مجازی شروع کنید.
    • رویدادهایی را که در برنامه جاری‌سازی‌شده در دستگاه متصل رخ می‌دهد به دستگاه محلی برمی‌گرداند، مثلاً رویداد لمسی در رایانه لوحی در همان مختصات در تلفن پخش می‌شود.
    • داده‌های صوتی را از برنامه جاری‌سازی‌شده ضبط کنید.
    • وقتی برنامه جاری‌سازی‌شده از میکروفون استفاده می‌کند، جاری‌سازی میکروفون دستگاه محلی را با جاری‌سازی میکروفون دستگاه متصل‌شده جایگزین کنید.
    • جاری‌سازی دوربین دستگاه محلی با جاری‌سازی دوربین دستگاه متصل جایگزین می‌شود وقتی برنامه جاری‌سازی‌شده از دوربین استفاده می‌کند.
  • اعلان‌های دستگاه محلی را در دستگاه متصل جاری‌سازی و مدیریت کنید و برای اعلان‌ها اقدام کنید.
  • فراداده را از دستگاه محلی، مانند فهرست برنامه‌های دردسترس در دستگاه محلی، به دستگاه متصل جاری‌سازی کنید.
  • درخواست درستی‌سنجی دستگاه.