راه اندازی برای توسعه با Cast Application Framework (CAF) برای اندروید

پیش نیازها

Google Cast SDK برای Android بخشی از SDK خدمات Google Play است و نیازی به دانلود جداگانه ندارد.

توجه : خدمات Google Play به شما امکان دسترسی به طیف وسیعی از APIها را برای ایجاد تبلیغات، جمع‌آوری تجزیه و تحلیل، احراز هویت کاربران، ادغام نقشه‌ها و موارد دیگر می‌دهد. برای اطلاعات بیشتر، به نمای کلی خدمات Google Play مراجعه کنید. برای شما مهم است که مطمئن شوید APK خدمات Google Play صحیح روی دستگاه کاربر نصب شده است زیرا ممکن است به‌روزرسانی‌ها بلافاصله به همه کاربران نرسد.

خدمات Google Play را به پروژه خود اضافه کنید

محیط توسعه خود را در زیر انتخاب کنید و با دنبال کردن مراحل ارائه شده، خدمات Google Play را به پروژه خود اضافه کنید.

اندروید استودیو

برای در دسترس قرار دادن API خدمات Google Play برای برنامه خود:

  1. فایل build.gradle را در دایرکتوری ماژول برنامه خود باز کنید.

    توجه: پروژه های Android Studio شامل یک فایل build.gradle سطح بالا و یک فایل build.gradle برای هر ماژول است. حتما فایل را برای ماژول برنامه خود ویرایش کنید. برای اطلاعات بیشتر در مورد Gradle به ساخت پروژه خود با Gradle مراجعه کنید.

  2. بررسی کنید که google() در repositories فهرست شده گنجانده شده باشد.
    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:21.5.0'
        }

    مطمئن شوید که هر بار که سرویس‌های Google Play به‌روزرسانی می‌شوند، شماره نسخه را به‌روزرسانی می‌کنید.

    توجه: اگر تعداد مراجع روش در برنامه شما از حد 65 هزار بیشتر شود، ممکن است برنامه شما کامپایل نشود. ممکن است بتوانید این مشکل را هنگام کامپایل کردن برنامه خود با مشخص کردن APIهای خاص Google Play Services که برنامه شما استفاده می کند، به جای همه آنها، کاهش دهید. برای اطلاعات در مورد نحوه انجام این کار، به کامپایل انتخابی APIها در فایل اجرایی خود مراجعه کنید.

  4. تغییرات را ذخیره کنید و روی Sync Project with Gradle Files در نوار ابزار کلیک کنید.

IDE دیگر

برای در دسترس قرار دادن API خدمات Google Play برای برنامه خود:

  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" />

هنگامی که پروژه خود را برای ارجاع به پروژه کتابخانه تنظیم کردید، می توانید توسعه ویژگی ها را با API های خدمات Google Play شروع کنید.

یک استثنای 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