Configuração para desenvolver com o framework de aplicativo do Google Cast (CAF, na sigla em inglês) para Android

Pré-requisitos

O SDK do Google Cast para Android faz parte do SDK do Google Play Services e não precisa ser baixado separadamente.

Observação: os Serviços do Google Play oferecem acesso a uma variedade de APIs para criar anúncios, coletar análises, autenticar usuários, integrar mapas e muito mais. Para mais informações, consulte Visão geral do Google Play Services. É importante garantir que o APK correto do Google Play Services esteja instalado no dispositivo de um usuário, já que as atualizações podem não chegar a todos os usuários imediatamente.

Adicionar o Google Play Services ao projeto

Selecione seu ambiente de desenvolvimento abaixo e adicione os Serviços do Google Play ao seu projeto seguindo as etapas fornecidas.

Android Studio

Para disponibilizar as APIs Google Play Services ao seu app:

  1. Abra o arquivo build.gradle no diretório do módulo do aplicativo.

    Observação:os projetos do Android Studio contêm um arquivo build.gradle de nível superior e um arquivo build.gradle para cada módulo. Edite o arquivo do módulo do seu app. Consulte Como criar seu projeto com o Gradle para mais informações sobre o Gradle.

  2. Verifique se google() está incluído no repositories listado.
    repositories {
        google()
    }
  3. Adicione uma nova regra de build em dependencies para a versão mais recente de play-services. Exemplo:
    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.1.0'
        }

    Atualize esse número de versão sempre que o Google Play Services for atualizado.

    Observação:se o número de referências de método no seu app exceder o limite de 65 mil, ele poderá não ser compilado. É possível reduzir esse problema ao compilar o app especificando apenas as APIs específicas do Google Play Services que ele usa, em vez de todas. Para informações sobre como fazer isso, consulte Compilar APIs seletivamente no seu executável.

  4. Salve as mudanças e clique em Sync Project with Gradle Files na barra de ferramentas.

Outro ambiente de desenvolvimento integrado

Para disponibilizar as APIs Google Play Services ao seu app:

  1. Copie o projeto da biblioteca em <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ para o local em que você mantém seus projetos de apps Android.
  2. No projeto do app, faça referência ao projeto da biblioteca do Google Play Services. Consulte Como referenciar um projeto de biblioteca na linha de comando para mais informações sobre como fazer isso.

    Observação:você precisa referenciar uma cópia da biblioteca que copiou para seu espaço de trabalho de desenvolvimento. Não referencie a biblioteca diretamente do diretório do SDK do Android.

  3. Depois de adicionar a biblioteca dos Serviços do Google Play como uma dependência do projeto do app, abra o arquivo de manifesto do app e adicione a seguinte tag como filha do elemento <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

Depois de configurar seu projeto para referenciar o projeto de biblioteca, você pode começar a desenvolver recursos com as APIs do Google Play Services.

Criar uma exceção do Proguard

Para evitar que o ProGuard remova classes obrigatórias, adicione as seguintes linhas ao arquivo /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