إعداد التطوير باستخدام إطار عمل تطبيق Cast (CAF) لنظام التشغيل Android

المتطلبات الأساسية

حزمة SDK لتكنولوجيا Google Cast لنظام Android هي جزء من حزمة SDK لخدمات Google Play إلى تنزيل كل إصدار على حدة.

ملاحظة: تتيح لك خدمات Google Play الوصول إلى مجموعة من واجهات برمجة التطبيقات المخصصة لإنشاء الإعلانات وجمع الإحصاءات ومصادقة المستخدمين ودمج الخرائط، وأكثر من ذلك بكثير. لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على Google Play. الخدمات: من المهم بالنسبة إليك التأكُّد من أنّ حزمة APK الصحيحة لخدمات Google Play تم التثبيت على جهاز المستخدم نظرًا لأن التحديثات قد لا تصل إلى جميع المستخدمين على الفور.

إضافة "خدمات Google Play" إلى مشروعك

اختَر بيئة التطوير أدناه وأضِف "خدمات Google Play" إلى مشروعك باتّباع الخطوات المقدَّمة.

استوديو Android

لإتاحة واجهات برمجة التطبيقات لخدمات Google Play في تطبيقك، اتّبِع الخطوات التالية:

  1. افتح ملف build.gradle داخل دليل وحدة التطبيق.

    ملاحظة: تتضمّن مشاريع "استوديو Android" مستوى أعلى. 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 ألف، قد يتعذّر على تطبيقك تجميع. قد تتمكّن من الحدّ من هذه المشكلة عند تجميع تطبيقك من خلال تحديد واجهات برمجة التطبيقات لخدمات Google Play التي يستخدمها تطبيقك، بدلاً من جميعها. للحصول على معلومات حول كيفية إجراء ذلك، يُرجى الاطّلاع على مقالة تجميع واجهات برمجة التطبيقات بشكل انتقائي في الملف القابل للتنفيذ.

  4. احفظ التغييرات وانقر على مزامنة المشروع مع ملفات Gradle في شريط الأدوات.

بيئة تطوير متكاملة (IDE) أخرى

لإتاحة واجهات برمجة التطبيقات لخدمات Google Play في تطبيقك، اتّبِع الخطوات التالية:

  1. نسخ مشروع المكتبة في <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ وصولاً إلى مكان صيانة مشاريع تطبيقات Android.
  2. في مشروع تطبيقك، يُرجى الإشارة إلى مشروع مكتبة "خدمات Google Play". عرض الرجوع إلى مشروع مكتبة في سطر الأوامر للحصول على مزيد من المعلومات حول كيفية إجراء ذلك

    ملاحظة: يجب الإشارة إلى نسخة من المكتبة التي نسختها إلى مساحة عمل التطوير، يجب ألا ترجع إلى المكتبة مباشرةً من دليل حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

  3. بعد إضافة مكتبة خدمات Google Play كمكتبة مستقلة لمشروع تطبيقك، افتح ملف البيان لتطبيقك وأضف العلامة التالية كعلامة فرعية العنصر <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

بمجرد إعداد مشروعك للإشارة إلى مشروع المكتبة، يمكنك البدء في تطوير الميزات ذات واجهات برمجة التطبيقات لخدمات 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