بث التطبيقات المصاحبة

في الإصدار Android 13، تتيح ميزة بث التطبيقات للهواتف بث تطبيقاتها إلى الأجهزة المتصلة، وتتيح لتلك الأجهزة التفاعل مع التطبيقات. يتيح دور COMPANION_DEVICE_APP_STREAMING الجديد للتطبيق إنشاء وإدارة الخوادم الوكيلة للأجهزة البعيدة المتصلة من أجل بث التطبيقات من الجهاز المحلي إلى الجهاز البعيد. يمكن للتطبيق الذي يتضمّن دور COMPANION_DEVICE_APP_STREAMING الحصول على أذونات لإنشاء شاشة عرض افتراضية، وتشغيل تطبيق عليها، ثم بث فيديو للتطبيق الذي تم تشغيله إلى جهاز آخر. يمكن للتطبيق الذي يحمل الدور أيضًا إدخال أحداث الإدخال والميكروفون المستلَمة من جهاز بعيد إلى الجهاز المحلي، كما لو كان هذا الجهاز متصلاً كجهاز ملحق.

هندسة معمارية

بدءًا من الإصدار Android 13، تشكّل أداة إدارة الأجهزة الافتراضية الجديدة وأداة إدارة الأجهزة المصاحبة العناصر الأساسية لإتاحة بث التطبيقات والتفاعل مع الأجهزة المتصلة عن بُعد.

أداة إدارة الأجهزة الافتراضية

تعمل ميزة "بث التطبيق" من خلال الاستفادة من الشاشات الافتراضية. ينشئ "مدير الأجهزة الافتراضية" شاشة عرض افتراضية منفصلة عن شاشة العرض الأساسية المرئية. عندما يوافق المستخدم على بدء بث تطبيق، يتم تشغيل التطبيق على الشاشة الافتراضية أو نقله إليها. يتم نقل محتوى شاشة العرض الافتراضية في فيديو مضمّن إلى الجهاز المتصل ليتم عرضه.

يتضمّن "مدير الأجهزة الافتراضية" واجهات برمجة تطبيقات تتيح إنشاء مثيلات VirtualDevice وتسجيلها وإدارتها.

مثيل VirtualDevice هو خادم وكيل للجهاز المتصل وإمكاناته. تتيح نسخة من VirtualDevice لجهاز متصل تلقّي وعرض وبث التطبيقات الواردة والتفاعل معها، وذلك من خلال ما يلي:

  • إنشاء مثيل VirtualDisplay مخصّص للعرض على شاشة جهاز متصل
  • إدخال بث صوتي عن بُعد، مثل بث من ميكروفون الجهاز المتصل، في الجهاز المحلي لتشغيله
  • إدخال أحداث الإدخال عن بُعد، مثل تلك الواردة من لوحة مفاتيح الجهاز المتصل، إلى الجهاز المحلي لتشغيل المحتوى

تطبيق "مدير الجهاز المصاحب"

تدير أداة إدارة الأجهزة المصاحبة (CDM) حالة إمكانية الاتصال وتفرض متطلبات الدور التي يجب استيفاؤها لتفعيل بث التطبيق.

يوضّح الشكل التالي التفاعلات بين الجهاز المحلي والجهاز البعيد أثناء بث التطبيقات:

app-streaming-interaction

الشكل 1: التفاعلات بين الجهاز المحلي والجهاز البعيد أثناء بث التطبيقات

تنفيذ دور بث التطبيقات المصاحبة

يمكن لمصنّعي المعدات الأصلية تنفيذ تطبيق لديه الدور COMPANION_DEVICE_APP_STREAMING من أجل توفير تجربة غنية وآمنة على عدة أجهزة.

لإنشاء جهاز افتراضي يتيح بث التطبيقات، يجب أن يكون التطبيق حائزًا على دور COMPANION_DEVICE_APP_STREAMING. عند منح الدور، يتلقّى التطبيق الإذن CREATE_VIRTUAL_DEVICE، ما يتيح له إنشاء جهاز افتراضي. من المتوقّع أن ينفّذ أصحاب الأدوار ميزة بث التطبيقات من خلال إنشاء مثيل VirtualDevice يعمل كخادم وكيل لجهاز متصل. توفّر الفئة VirtualDevice طرقًا تتيح استخراج سطح مركّب لشاشة افتراضية، وهو مناسب للبث إلى جهاز آخر. توفّر فئة VirtualDevice أيضًا واجهات برمجة تطبيقات لإدخال أحداث الإدخال التي تحدث على جهاز بعيد في الجهاز المحلي، ما يتيح لتطبيق قيد التشغيل على جهاز محلي أن يظهر كما لو كان يعمل بشكل أساسي على جهاز بعيد.

اتّبِع الخطوات التالية لتنفيذ دور بث التطبيق المصاحب:

  1. أنشِئ تطبيقًا يطلب الإذن REQUEST_COMPANION_PROFILE_APP_STREAMING في ملف البيان.

  2. اطلب من المستخدم منح التطبيق أذونات التطبيق لأداء بث التطبيقات.

  3. أنشئ مثيلاً من CDM AssociationRequest لطلب دور COMPANION_DEVICE_APP_STREAMING. يتلقّى التطبيق إذن "CREATE_VIRTUAL_DEVICE" عند منح الدور.

  4. استخدِم VirtualDeviceManager#create() لإنشاء مثيل VirtualDevice. باستخدام VirtualDevice، يمكن للتطبيق إنشاء شاشات افتراضية ومدخلات افتراضية وإدارتها.

  5. إطلاق intent مؤجّلة للإشعار على الشاشة الافتراضية وإنشاء فيديو للقطة شاشة من تلك الشاشة

  6. إنشاء اتصال بالجهاز المتصل وبث الشاشة الافتراضية إلى الجهاز المتصل

  7. إدخال أحداث الإدخال من الجهاز المتصل إلى الجهاز المحلي من خلال واجهات برمجة تطبيقات VirtualDevice

  8. عندما يغلق المستخدم تطبيق البث على الجهاز البعيد، يجب إنهاء البث وإزالة مثيل VirtualDevice. في هذه المرحلة، يتم تشغيل تطبيق البث الذي كان يعمل سابقًا في الخلفية على الجهاز المحلي ويتم إغلاق الاتصال.

  9. إذا لزم الأمر، انتظِر المزيد من الإشارات من الجهاز المرتبط لإعادة تشغيل ميزة بث التطبيقات.

يتحمّل التطبيق مسؤولية الاتصال بالجهاز البعيد وإبلاغ CDM بحالة الاتصال وفرض متطلبات الأمان كما هو موضّح في CDD.

متطلبات حامل دور COMPANION_DEVICE_APP_STREAMING

تمنح وحدة CDM دور COMPANION_DEVICE_APP_STREAMING عندما يربط المستخدم تطبيق بث تطبيقات بجهاز. يرتبط هذا الدور بملف شخصي للجهاز، لذا يمكنك التحكّم في التطبيقات التي يمكن إضافتها إلى متجر Google Play والتي تتطابق مع هذا الملف الشخصي. يُرجى الاطّلاع على أدوار Android للحصول على قائمة بمتطلبات دور "COMPANION_DEVICE_APP_STREAMING". يُرجى التواصل مع جهة الاتصال المعيّنة لكم في Google للحصول على مزيد من المعلومات.

الصلاحيات التي تنطوي على دور COMPANION_DEVICE_APP_STREAMING

لتنفيذ ميزة "بث التطبيقات"، يفترض دور COMPANION_DEVICE_APP_STREAMING أنّ تطبيق صاحب الدور يتضمّن الإمكانات والسلوكيات التالية:

  • إنشاء اتصالات بالأجهزة الأخرى وإدارتها
  • إنشاء شاشات افتراضية موثوقة وإدارتها، بما في ذلك الشاشات التي تم فتح قفلها، على النحو التالي:
    • بدء الأنشطة على الشاشة الافتراضية
    • إدخال الأحداث التي تحدث على تطبيق بثّ على جهاز متصل إلى الجهاز المحلي، مثل تشغيل حدث لمس على الجهاز اللوحي في الإحداثيات نفسها على الهاتف
    • تسجيل البيانات الصوتية من تطبيق البثّ.
    • استبدِل مصدر بيانات الميكروفون في الجهاز المحلي بمصدر بيانات الميكروفون في جهاز متصل أثناء استخدام تطبيق بثّ للميكروفون.
    • استبدال بث كاميرا الجهاز المحلي ببث كاميرا جهاز متصل أثناء استخدام تطبيق يتم بثه للكاميرا
  • إدارة الإشعارات وبثّها من الجهاز المحلي إلى الجهاز المتصل، واتّخاذ إجراءات بشأن الإشعارات
  • بث البيانات الوصفية من الجهاز المحلي، مثل قائمة التطبيقات المتاحة على الجهاز المحلي، إلى الجهاز المتصل
  • طلب تأكيد الجهاز