Configuração de desenvolvimento com o Cast Application Framework (CAF) para Android

Pré-requisitos

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

Observação: o Google Play Services oferece 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 o ambiente de desenvolvimento abaixo e adicione o Google Play Services ao projeto seguindo as etapas fornecidas.

Android Studio

Para disponibilizar as APIs do Google Play Services para seu app, faça o seguinte:

  1. Abra o arquivo build.gradle dentro do diretório do módulo do seu 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. Não se esqueça de editar o arquivo do módulo do seu 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 compilação em dependencies para a versão mais recente de 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.2.0'
        }
    

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

    Observação:se o número de referências dos métodos no app exceder o limite de 65 mil, o app talvez não consiga compilar. Você pode mitigar esse problema ao compilar o app especificando apenas as APIs específicas do Google Play Services usadas pelo app, em vez de todas elas. Para ver informações sobre como fazer isso, consulte Como compilar seletivamente APIs em seu executável.

  4. Salve as mudanças e clique em Sync Project with Gradle Files.

Outro ambiente de desenvolvimento integrado

Para disponibilizar as APIs do Google Play Services para seu app, faça o seguinte:

  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 app Android.
  2. No projeto do app, faça referência ao projeto da biblioteca do Google Play Services. Consulte Como consultar um projeto de biblioteca na linha de comando para ver mais informações sobre como fazer isso.

    Observação: faça referência a uma cópia da biblioteca que você copiou 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 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 o projeto para referenciar o projeto de biblioteca, é possível começar a desenvolver recursos com as APIs do Google Play Services.

Criar uma exceção do Proguard

Para evitar que o ProGuard remova as classes necessárias, adicione as seguintes linhas no 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