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. 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:23.0.0'
        }

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

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

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

অন্য IDE

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

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

    মনে রাখবেন: আপনার ডেভেলপমেন্ট ওয়ার্কস্পেসে কপি করা লাইব্রেরির কপি রেফারেন্স হিসেবে ব্যবহার করতে হবে—Android SDK ডিরেক্টরি থেকে সরাসরি লাইব্রেরি রেফারেন্স হিসেবে ব্যবহার করবেন না।

  3. আপনার অ্যাপ প্রোজেক্টের জন্য ডিপেন্ডেন্সি হিসেবে Google Play পরিষেবা লাইব্রেরি যোগ করার পরে, আপনার অ্যাপের ম্যানিফেস্ট ফাইল খুলুন এবং <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