Configuración para desarrollar con el framework de aplicaciones de Cast (CAF) para Android

Requisitos previos

El SDK de Google Cast para Android forma parte del SDK de Servicios de Google Play y no es necesario descargarlos por separado.

Nota: Los Servicios de Google Play te brindan acceso a una variedad de APIs para crear anuncios, recopilar estadísticas, autenticar usuarios, integrar mapas y mucho más. Para obtener más información, consulta la Descripción general de Google Play. Servicios Es importante que asegúrese de que se muestre el APK correcto de Servicios de Google Play instalada en el dispositivo de un usuario, ya que es posible que las actualizaciones no lleguen a todos.

Agrega Servicios de Google Play a tu proyecto

Selecciona tu entorno de desarrollo a continuación y agrega los servicios de Google Play a tu proyecto siguiendo los pasos que se proporcionan.

Android Studio

Para que las APIs de los Servicios de Google Play estén disponibles en tu app, haz lo siguiente:

  1. Abre el archivo build.gradle dentro del directorio del módulo de tu aplicación.

    Nota: Los proyectos de Android Studio contienen un vínculo build.gradle y build.gradle para cada módulo. Asegúrate de editar el archivo del módulo de tu aplicación. Consulta Cómo compilar tu proyecto con Gradle para obtener más información sobre Gradle.

  2. Verifica que google() esté incluido en el repositories que se muestra.
    repositories {
        google()
    }
  3. Agrega una nueva regla de compilación en dependencies para la versión más reciente de play-services Por ejemplo:
    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'
        }

    Asegúrate de actualizar este número de versión cada vez que se actualicen los Servicios de Google Play.

    Nota: Si la cantidad de referencias de métodos en tu app supera el Límite de 65,000, es posible que tu app no pueda compilar. Posiblemente puedas evitar este problema especificando solo las APIs específicas de servicios de Google Play que se usan en tu aplicación al compilarla, en lugar de todas ellas. Información sobre cómo hacerlo, consulta Compila APIs de forma selectiva en tu ejecutable.

  4. Guarda los cambios y haz clic en Sync Project with Gradle Files en la barra de herramientas.

Otro IDE

Para que las APIs de los Servicios de Google Play estén disponibles en tu app, haz lo siguiente:

  1. Copia el proyecto de biblioteca en <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ a la ubicación en la que guardas los proyectos de apps de Android.
  2. En el proyecto de tu app, haz referencia al proyecto de biblioteca de Servicios de Google Play. Consulta Cómo hacer referencia a un proyecto de biblioteca en la línea de comandos para obtener más información sobre cómo hacerlo.

    Nota: Debes hacer referencia a una copia de la biblioteca que en tu espacio de trabajo de desarrollo. No debes hacer referencia a la biblioteca directamente desde SDK de Android.

  3. Una vez que hayas agregado la biblioteca de Google Play Services como dependencia para el proyecto de tu app, haz lo siguiente: abre el archivo de manifiesto de tu app y agrega la siguiente etiqueta como elemento secundario del Elemento <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

Una vez que hayas configurado tu proyecto para hacer referencia al proyecto de biblioteca, puedes comenzar a desarrollar con el APIs de los Servicios de Google Play

Cómo crear una excepción de ProGuard

Para evitar ProGuard sin quitar las clases requeridas, agrega las siguientes líneas en el Archivo /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