Настройка для разработки с использованием Cast Application Framework (CAF) для Android

Предварительные требования

SDK Google Cast для Android является частью SDK сервисов Google Play и не требует отдельной загрузки.

Примечание : Сервисы Google Play предоставляют доступ к ряду API для создания рекламы, сбора аналитических данных, аутентификации пользователей, интеграции карт и многого другого. Для получения дополнительной информации см. Обзор сервисов Google Play . Важно убедиться, что на устройстве пользователя установлен правильный APK-файл сервисов Google Play, поскольку обновления могут быть доступны не всем пользователям сразу.

Добавьте Google Play Services в свой проект.

Выберите свою среду разработки ниже и добавьте сервисы Google Play в свой проект, следуя предоставленным инструкциям.

Android Studio

Чтобы сделать 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:22.2.0'
        }

    Обязательно обновляйте этот номер версии каждый раз при обновлении сервисов Google Play.

    Примечание: Если количество ссылок на методы в вашем приложении превышает лимит в 65 000 , компиляция приложения может завершиться неудачей. Вы можете попытаться решить эту проблему при компиляции приложения, указав только те API сервисов Google Play, которые использует ваше приложение, вместо всех сразу. Информацию о том, как это сделать, см. в разделе «Выборочная компиляция API в исполняемый файл» .

  4. Сохраните изменения и нажмите кнопку «Синхронизировать проект с файлами Gradle» на панели инструментов.

Другие 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