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

پیش‌نیازها

کیت توسعه نرم‌افزاری گوگل کست برای اندروید بخشی از کیت توسعه نرم‌افزاری سرویس‌های گوگل پلی است و نیازی به دانلود جداگانه ندارد.

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

سرویس‌های گوگل پلی را به پروژه خود اضافه کنید

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

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

برای اینکه APIهای سرویس‌های گوگل پلی در برنامه شما در دسترس قرار گیرند:

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

    نکته: پروژه‌های اندروید استودیو شامل یک فایل 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:22.2.0'
        }

    مطمئن شوید که هر بار که سرویس‌های گوگل پلی به‌روزرسانی می‌شوند، این شماره نسخه را به‌روزرسانی می‌کنید.

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

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

سایر IDE ها

برای اینکه APIهای سرویس‌های گوگل پلی در برنامه شما در دسترس قرار گیرند:

  1. پروژه کتابخانه را در <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ به مکانی که پروژه‌های برنامه اندروید خود را در آن نگهداری می‌کنید، کپی کنید.
  2. در پروژه برنامه خود، به پروژه کتابخانه خدمات Google Play مراجعه کنید. برای اطلاعات بیشتر در مورد نحوه انجام این کار، به بخش «ارجاع به یک پروژه کتابخانه در خط فرمان» مراجعه کنید.

    توجه: شما باید به یک کپی از کتابخانه‌ای که در فضای کاری توسعه خود کپی کرده‌اید، ارجاع دهید - نباید مستقیماً از دایرکتوری SDK اندروید به کتابخانه ارجاع دهید.

  3. بعد از اینکه کتابخانه سرویس‌های گوگل پلی را به عنوان یک وابستگی برای پروژه اپلیکیشن خود اضافه کردید، فایل مانیفست اپلیکیشن خود را باز کنید و تگ زیر را به عنوان فرزند عنصر <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 فایل /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