शामिल होने की इच्छा

"शामिल होने के लिए इंटेंट", Android सेंडर की एक नई सुविधा है. इसकी मदद से, भेजने वाला ऐप्लिकेशन उस कास्ट सेशन में "शामिल" हो सकता है जिसे अन्य ऐप्लिकेशन या अपनी आवाज़ में शुरू किया गया है. आपने भेजने वाले के ऐप्लिकेशन को, Cast SDK टूल के बनाए गए इंटेंट से लॉन्च करने के लिए सेट अप किया है.

उदाहरण के लिए, कास्ट सेशन शुरू करने के लिए आवाज़ का इस्तेमाल करने पर, Cast SDK टूल एक सूचना बनाता है. इससे उपयोगकर्ता एक ही नेटवर्क के सभी Android फ़ोन पर वीडियो को कंट्रोल कर सकता है. सूचना पर टैप होने पर, Cast SDK टूल, आपके ऐप्लिकेशन को कास्ट सेशन में शामिल करने के लिए लॉन्च करता है.

'शामिल होने के लिए इंटेंट' को सही तरीके से लागू करने के लिए, CastVideos-Android सैंपल देखें.

Android सेंडर का इस्तेमाल करना

इस सुविधा को चालू करने के लिए, अपने ऐप्लिकेशन में यह तरीका अपनाएं:

पक्का करें कि आपका ऐप्लिकेशन पहले से ही, Android सेंडर SDK टूल के 11.4.0 के बाद वाले वर्शन का इस्तेमाल कर रहा हो. build.gradle में:

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

जिस गतिविधि में इंटेंट को हैंडल करना है उसमें एक नया इंटेंट फ़िल्टर जोड़ें. इस इंटेंट का इस्तेमाल, रिमोट कंट्रोल नोटिफ़िकेशन (आरसीएन) में आपके ऐप्लिकेशन को लॉन्च करने और कास्ट सेशन में शामिल होने के लिए किया जाएगा. हमारा सुझाव है कि आप उस गतिविधि का इस्तेमाल करें जहां 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"/>

जिस गतिविधि में नया इंटेंट फ़िल्टर बनाया जाता है वहां onResume() में SessionManager.startSession(Intent) को कॉल करें:

कोटलिन
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 Developer Console सेटअप

'शामिल होने के लिए इंटेंट' सुविधा का इस्तेमाल करने के लिए, ऐप्लिकेशन यूआरआई और पैकेज का नाम Google Cast Developer Console में जोड़ना ज़रूरी है.

कॉन्टेंट पाने वाले व्यक्ति का नाम सूची में मौजूद होना चाहिए और उसे पब्लिश भी किया जाना चाहिए. ऐसा करने पर ही 'शामिल हों' सुविधा सही तरीके से काम कर पाएगी.

अपने ऐप्लिकेशन को लिस्ट करने के लिए, लिस्टिंग के विकल्प को "हां" पर टॉगल करें. इसके बाद, ऐप्लिकेशन का टाइटल, ब्यौरा और 512x512 का ग्राफ़िक दें.

सेटअप करने के बाद, रिमोट कंट्रोल नोटिफ़िकेशन (आरसीएन) की मदद से लागू किए जाने की जांच की जा सकती है. इसके लिए, नीचे दिया गया तरीका अपनाएं:

  1. Android फ़ोन पर Google Home ऐप्लिकेशन इंस्टॉल करें और फ़ोन को वाई-फ़ाई से कनेक्ट करें.
  2. कास्ट करने की सुविधा वाला डिवाइस, उसी नेटवर्क के तहत Google Home डिवाइस को सेट अप करता है.
  3. कमांड और कंट्रोल (CaC) टूल, किसी दूसरे Android या iOS डिवाइस या आवाज़ से Google Home डिवाइस से कास्ट सेशन शुरू करें और देखें कि वेब रिसीवर ऐप्लिकेशन लॉन्च हुआ है या नहीं.
  4. फ़ोन पर आरसीएन पाने के लिए कुछ सेकंड इंतज़ार करें और इंटेंट को ट्रिगर करने के लिए, सूचना पर टैप करें. इंटेंट को ऐसे किसी भी ऐप्लिकेशन पर ब्रॉडकास्ट किया जाना चाहिए जो सेशन में शामिल होने के लिए, ज़रूरी डेटा के साथ इंटेंट रजिस्टर करता है.

SessionManagerListener.onSessionStarted(T, String) ट्रिगर हो जाएगा और सेशन में शामिल हो जाएगा.

पुष्टि करने का तरीका

अगर आपका ऐप्लिकेशन, सेशन में शामिल हो जाता है, तो SessionManagerListener.onSessionStarted(T, String) कॉल किया जाता है. अगर ऐसा नहीं है, तो SessionManagerListener.onSessionStartFailed(T, int) कॉल किया जाता है. यह मानते हुए कि आपका ऐप्लिकेशन पहले से ही उन इवेंट को ठीक से मैनेज करता है (उदाहरण के लिए, बड़ा किया गया कंट्रोलर या मिनी कंट्रोलर लॉन्च करना), तो आपको कुछ और करने की ज़रूरत नहीं है.