Android के लिए कास्ट ऐप्लिकेशन फ़्रेमवर्क (सीएएफ़) के साथ डेवलप करने के लिए सेटअप

ज़रूरी शर्तें

Android के लिए Google Cast SDK, Google Play services के SDK टूल का हिस्सा है. इसे अलग से डाउनलोड करने की ज़रूरत नहीं है.

ध्यान दें: Google Play services से, आपको विज्ञापन बनाने, आंकड़े इकट्ठा करने, उपयोगकर्ताओं की पुष्टि करने, मैप को इंटिग्रेट करने वगैरह के लिए, कई तरह के एपीआई का ऐक्सेस मिलता है. ज़्यादा जानकारी के लिए, Google Play Services की खास जानकारी देखें. आपके लिए यह पक्का करना ज़रूरी है कि उपयोगकर्ता के डिवाइस पर Google Play services का सही APK इंस्टॉल किया गया हो. ऐसा इसलिए, क्योंकि हो सकता है कि अपडेट तुरंत सभी उपयोगकर्ताओं तक न पहुंचें.

अपने प्रोजेक्ट में Google Play Services जोड़ें

नीचे अपना डेवलपमेंट एनवायरमेंट चुनें और दिए गए तरीके का पालन करके अपने प्रोजेक्ट में Google Play services जोड़ें.

Android Studio

अपने ऐप्लिकेशन में Google Play services के एपीआई उपलब्ध कराने के लिए:

  1. अपनी ऐप्लिकेशन मॉड्यूल डायरेक्ट्री में build.gradle फ़ाइल खोलें.

    ध्यान दें: Android Studio प्रोजेक्ट में, हर मॉड्यूल के लिए एक टॉप लेवल build.gradle फ़ाइल और एक build.gradle फ़ाइल होती है. अपने ऐप्लिकेशन मॉड्यूल की फ़ाइल में बदलाव करना न भूलें. Gradle के बारे में ज़्यादा जानकारी के लिए, Gredle के साथ अपना प्रोजेक्ट बनाना देखें.

  2. पुष्टि करें कि google(), repositories की सूची में शामिल है.
    repositories {
        google()
    }
    
  3. play-services के सबसे नए वर्शन के लिए, dependencies में जाकर नया बिल्ड नियम जोड़ें. उदाहरण के लिए:
    apply plugin: 'com.android.application'
        ...
    
        dependencies {
            implementation 'androidx.appcompat:appcompat:1.3.1'
            implementation 'androidx.mediarouter:mediarouter:1.2.5'
            implementation 'com.google.android.gms:play-services-cast-framework:21.4.0'
        }
    

    पक्का करें कि आप हर बार Google Play services के अपडेट होने पर, इस वर्शन नंबर को अपडेट करें.

    ध्यान दें: अगर आपके ऐप्लिकेशन में, तय किए गए तरीकों की संख्या 65 हज़ार की सीमा से ज़्यादा है, तो हो सकता है कि आपका ऐप्लिकेशन कंपाइल न कर पाए. अपने ऐप्लिकेशन को कंपाइल करते समय इस समस्या को कम किया जा सकता है. इसके लिए, आपको उन सभी Google Play services के एपीआई के बजाय सिर्फ़ उन खास Google Play services API के बारे में बताना होगा जिनका इस्तेमाल आपका ऐप्लिकेशन करता है. ऐसा करने का तरीका जानने के लिए, एक्ज़ीक्यूटेबल में एपीआई को चुनकर, इकट्ठा करना देखें.

  4. बदलावों को सेव करें और टूलबार में Grdle Files के साथ प्रोजेक्ट सिंक करें पर क्लिक करें.

अन्य आईडीई

अपने ऐप्लिकेशन में Google Play services के एपीआई उपलब्ध कराने के लिए:

  1. <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ पर मौजूद लाइब्रेरी प्रोजेक्ट को उस जगह कॉपी करें जहां आपके Android ऐप्लिकेशन प्रोजेक्ट मैनेज किए जाते हैं.
  2. अपने ऐप्लिकेशन प्रोजेक्ट में, Google Play services के लाइब्रेरी प्रोजेक्ट का रेफ़रंस दें. ऐसा करने के बारे में ज़्यादा जानकारी के लिए, कमांड लाइन पर लाइब्रेरी प्रोजेक्ट के बारे में बताना लेख पढ़ें.

    ध्यान दें: आपको उस लाइब्रेरी की कॉपी का रेफ़रंस देना चाहिए जिसे आपने अपने डेवलपमेंट फ़ाइल फ़ोल्डर में कॉपी किया है—आपको सीधे Android SDK डायरेक्ट्री से उस लाइब्रेरी का रेफ़रंस नहीं देना चाहिए.

  3. Google Play services की लाइब्रेरी को अपने ऐप्लिकेशन प्रोजेक्ट के लिए डिपेंडेंसी के तौर पर जोड़ने के बाद, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल खोलें और यहां दिए गए टैग को <application> एलिमेंट के चाइल्ड के तौर पर जोड़ें:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

लाइब्रेरी प्रोजेक्ट का रेफ़रंस देने के लिए अपना प्रोजेक्ट सेट अप करने के बाद, Google Play services API की मदद से सुविधाएं डेवलप करना शुरू किया जा सकता है.

ProGuard अपवाद बनाना

ProGuard को ज़रूरी क्लास हटाने से रोकने के लिए, /proguard-project.txt फ़ाइल में ये लाइनें जोड़ें:

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames class * implements android.os.Parcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <methods>;
}

-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep public @com.google.android.gms.common.util.DynamiteApi class * {
  public <fields>;
  public <methods>;
}

-dontwarn android.security.NetworkSecurityPolicy