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 é parte do SDK do Google Play Services e não não precisam ser transferidos por download separadamente.

Observação: o Google Play Services oferece acesso a vários tipos de APIs para criar anúncios, coletar análises, autenticar usuários integração de mapas e muito mais. Para mais informações, consulte Visão geral do Google Play Serviços. É importante que você garanta que o APK correto do Google Play Services esteja instalado no dispositivo do 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 o Google Play Services ao projeto seguindo as etapas indicadas.

Android Studio

Para disponibilizar as APIs do Google Play Services no seu app:

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

    Observação:os projetos do Android Studio contêm um arquivo build.gradle e um arquivo build.gradle para cada módulo. Não se esqueça de editar o arquivo do módulo do aplicativo. Consulte Como criar seu projeto com o Gradle para ver 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 do play-services. Por 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:21.5.0'
        }
    

    Você deve atualizar 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, talvez o app não consiga compilar. É possível atenuar esse problema ao compilar seu aplicativo especificando apenas as APIs específicas do Google Play Services que seu aplicativo usa, em vez de todas elas. Para informações sobre como fazer isso, consulte Compilação seletiva de APIs no 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 do Google Play Services no seu app:

  1. Copie o projeto da biblioteca em <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ para o local onde 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 Referência a um projeto de biblioteca na linha de comando para mais informações sobre como fazer isso.

    Observação: você deve fazer referência a uma cópia da biblioteca que copiado para o espaço de trabalho de desenvolvimento. Não faça referência à biblioteca diretamente do Diretório do SDK do Android.

  3. Depois de adicionar a biblioteca do Google Play Services como dependência do projeto do aplicativo, abra o arquivo de manifesto do seu aplicativo 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 fazer referência ao projeto da biblioteca, você pode começar a desenvolver com os atributos APIs do Google Play Services.

Criar uma exceção do Proguard

Para evitar ProGuard contra a remoção classes necessárias, adicione as seguintes linhas na 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