Android-এর জন্য Cast Application Framework (CAF) ব্যবহার করে ডেভেলপ করার জন্য সেট-আপ

পূর্বশর্ত

Android-এর জন্য Google Cast SDK হল Google Play পরিষেবা SDK-এর অংশ এবং এটি আলাদা করে ডাউনলোড করতে হয় না।

মনে রাখবেন: Google Play পরিষেবা আপনাকে বিজ্ঞাপন তৈরি, অ্যানালিটিক্স সংগ্রহ, ব্যবহারকারীকে যাচাইকরণ, ম্যাপ ইন্টিগ্রেট করা এবং আরও অনেক কিছুর জন্য বিভিন্ন ধরনের API অ্যাক্সেস করতে দেয়। আরও তথ্যের জন্য, Google Play পরিষেবার ওভারভিউ দেখুন। আপডেট সব ব্যবহারকারীর কাছে সঙ্গে সঙ্গে নাও পৌঁছাতে পারে, তাই কোনও ব্যবহারকারীর ডিভাইসে সঠিক Google Play পরিষেবার APK ইনস্টল করা আছে কিনা তা নিশ্চিত করা আপনার জন্য গুরুত্বপূর্ণ।

আপনার প্রোজেক্টে Google Play পরিষেবা যোগ করুন

নিচে থেকে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট বেছে নিন এবং প্রদত্ত ধাপগুলি অনুসরণ করে আপনার প্রোজেক্টে Google Play পরিষেবা যোগ করুন।

Android Studio

আপনার অ্যাপের জন্য Google Play পরিষেবা API উপলভ্য করতে:

  1. আপনার অ্যাপ্লিকেশন মডিউল ডিরেক্টরির মধ্যে build.gradle ফাইলটি খুলুন।

    মনে রাখবেন: Android Studio প্রোজেক্টে টপ-লেভেল build.gradle ফাইল এবং প্রতিটি মডিউলের জন্য একটি build.gradle ফাইল থাকে। আপনার অ্যাপ্লিকেশন মডিউলের জন্য ফাইলটি এডিট করতে ভুলবেন না। Gradle সম্পর্কে আরও তথ্যের জন্য Gradle-এর সাহায্যে আপনার প্রোজেক্ট তৈরি করা দেখুন।

  2. repositories-এর তালিকায় google() অন্তর্ভুক্ত আছে কিনা তা যাচাই করুন।
    repositories {
        google()
    }
  3. dependencies-এর অধীনে play-services-এর লেটেস্ট ভার্সনের জন্য নতুন বিল্ড নিয়ম যোগ করুন। যেমন:
    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:22.3.1'
        }

    Google Play পরিষেবা আপডেট করা হলে, এই ভার্সন নম্বরটি আপডেট করতে ভুলবেন না।

    মনে রাখবেন: আপনার অ্যাপে মেথড রেফারেন্সের সংখ্যা ৬৫ হাজারের সীমা পেরিয়ে গেলে, আপনার অ্যাপ কম্পাইল করতে নাও পারে। আপনার অ্যাপ কম্পাইল করার সময়, সবকটি Google Play পরিষেবার API-এর পরিবর্তে শুধুমাত্র আপনার অ্যাপ ব্যবহার করে এমন নির্দিষ্ট API উল্লেখ করে আপনি এই সমস্যা কমাতে পারেন। এটি কীভাবে করবেন সেই বিষয়ে তথ্য পেতে, আপনার এক্সিকিউটেবল ফাইলে বেছে বেছে API কম্পাইল করা লিঙ্কটি দেখুন।

  4. পরিবর্তন সেভ করুন এবং টুলবারে Gradle ফাইলের সাথে প্রোজেক্ট সিঙ্ক করুন বিকল্পে ক্লিক করুন।

অন্যান্য IDE

আপনার অ্যাপের জন্য Google Play পরিষেবা API উপলভ্য করতে:

  1. আপনি যেখানে Android অ্যাপ প্রোজেক্ট ম্যানেজ করেন, সেখানে <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ লাইব্রেরি প্রোজেক্ট কপি করুন।
  2. আপনার অ্যাপ প্রোজেক্টে, Google Play পরিষেবা লাইব্রেরি প্রোজেক্টের রেফারেন্স দিন। এটি কীভাবে করবেন সেই সম্পর্কে আরও তথ্য পেতে কমান্ড লাইনে লাইব্রেরি প্রজেক্ট রেফারেন্স করা দেখুন।

    মনে রাখবেন: আপনার ডেভেলপমেন্ট ওয়ার্কস্পেসে কপি করা লাইব্রেরির কপি আপনাকে রেফারেন্স করতে হবে— 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 পরিষেবা 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