نية الانضمام

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

على سبيل المثال، عند استخدام الصوت لبدء جلسة Google Cast، تنشئ حزمة تطوير البرامج للإرسال إشعار يتيح للمستخدم التحكّم في تشغيل المحتوى على جميع هواتف Android على نفس الشبكة. عند النقر على الإشعار، تنشئ حزمة تطوير البرامج (SDK) لـ Cast نية تشغيل تطبيقك للانضمام إلى جلسة البث.

يمكنك الاطّلاع على نموذج Cast Videos-Android لتنفيذ Intent to Join.

باستخدام مرسِل Android

لتفعيل هذه الميزة، عليك اتّباع الخطوات التالية في تطبيقك:

تأكَّد من أنّ تطبيقك يستخدم حاليًا إصدار أحدث من حزمة تطوير البرامج (SDK) للمرسِلين من نظام Android. 11.4.0. في build.gradle:

dependencies {
    api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}

أضِف فلتر أهداف جديدًا إلى نشاط تريد معالجة الغرض فيه. تشير رسالة الأشكال البيانية سيتم استخدام intent بواسطة إشعارات التحكم عن بُعد (RCN) لإطلاق تطبيقك والانضمام إلى جلسة بث. ننصحك باستخدام النشاط الذي SessionManagerListener مستضافة، وإما onSessionStarted() أو onSessionStartFailed() طلب الدعم. تأكد من أن فلتر الأهداف الجديد فريد عبر نظام Android بالكامل. أر ننصحك باستخدام العلامة <data> لإجراء ذلك على النحو التالي:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="your_app_scheme" android:host="your_app_host"
        android:path="your_app_path"/>
</intent-filter>

أمثلة على علامة <data>:

<data android:scheme="https" android:host="example.com"
      android:path="/cast/join"/>

في النشاط الذي تحدّد فيه فلتر الأهداف الجديد، اطلب SessionManager.startSession(Intent) في onResume():

Kotlin
override fun onResume() {
    ...
    val intent = intent
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    val intentToJoinUri = Uri.parse("https://example.com/cast/join")
    if (intent.data != null && intent.data == intentToJoinUri) {
        mCastContext.sessionManager.startSession(intent)
    }
    ...
}
Java
@Override
protected void onResume() {
    ...
    Intent intent = getIntent();
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    Uri intentToJoinUri = Uri.parse("https://example.com/cast/join");
    if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) {
        mCastContext.getSessionManager().startSession(intent);
    }
    ...
}

إعداد وحدة تحكّم المطوّرين في Google Cast

لاستخدام ميزة Intent to Join، يجب أن يكون معرّف الموارد المنتظم (URI) للتطبيق واسم الحزمة تمت إضافتها في وحدة تحكّم المطوّرين في Google Cast

يجب أيضًا إدراج جهاز المُستلِم ونشره حتى تعمل ميزة Intent to Join بشكل صحيح.

لإدراج تطبيقك، يُرجى تفعيل خيار بطاقة بيانات المتجر على "نعم" وتقديم عنوان ووصفًا ورسمًا بحجم 512x512 لتطبيقك.

بعد الانتهاء من الإعداد، يمكنك اختبار التنفيذ باستخدام إشعارات وحدة التحكّم عن بُعد (RCN) على النحو التالي:

  1. ثبِّت تطبيق Google Home على هاتف Android واتصل بشبكة Wi-Fi على هاتفك.
  2. يعمل الجهاز الذي يعمل بتكنولوجيا Google Cast على إعداد جهاز Google Home باستخدام الشبكة نفسها.
  3. يمكنك بدء جلسة بث باستخدام جهاز Google Home باستخدام أداة الأوامر والتحكّم (CaC) على جهاز Android أو iOS آخر، أو من خلال الصوت والتحقق مما إذا كان جهاز استقبال الويب تم إطلاق تطبيقك.
  4. انتظِر بضع ثوانٍ للحصول على RCN على الهاتف، ثم انقر على الإشعار من أجل تؤدي إلى تحقيق الهدف. ينبغي بث الهدف إلى أي تطبيق يتم تسجيل الغرض في البيانات المطلوبة للانضمام إلى الجلسة.

SessionManagerListener.onSessionStarted(T, String) سينضم إلى الجلسة.

التحقّق

إذا انضم تطبيقك إلى الجلسة بنجاح، SessionManagerListener.onSessionStarted(T, String) البيانات. وإلا، SessionManagerListener.onSessionStartFailed(T, int) البيانات. بافتراض أن تطبيقك يتعامل بالفعل مع هذه الأحداث بشكل صحيح ( مثل إطلاق وحدة تحكم موسّعة أو وحدة تحكم مصغّرة)، فليس عليكم القيام بأي شيء آخر.