Configurazione per lo sviluppo con Cast Application Framework (CAF) per Android

Prerequisiti

L'SDK Google Cast per Android fa parte dell'SDK Google Play Services e non deve essere scaricato separatamente.

Nota: Google Play Services ti dà accesso a una serie di API per creare annunci, raccogliere analisi, autenticare gli utenti, integrare le mappe e molto altro ancora. Per ulteriori informazioni, consulta la panoramica di Google Play Services. È importante assicurarsi che l'APK di Google Play Services corretto sia installato sul dispositivo di un utente poiché gli aggiornamenti potrebbero non raggiungere immediatamente tutti gli utenti.

Aggiungi Google Play Services al tuo progetto

Seleziona il tuo ambiente di sviluppo di seguito e aggiungi Google Play Services al progetto seguendo i passaggi indicati.

Android Studio

Per rendere le API Google Play Services disponibili nella tua app:

  1. Apri il file build.gradle nella directory del modulo dell'applicazione.

    Nota: i progetti Android Studio contengono un file build.gradle di primo livello e un file build.gradle per ogni modulo. Assicurati di modificare il file del modulo dell'applicazione. Per ulteriori informazioni su Gradle, consulta Creazione del progetto con Gradle.

  2. Verifica che google() sia incluso nell'elenco repositories.
    repositories {
        google()
    }
    
  3. Aggiungi una nuova regola di build in dependencies per la versione più recente di play-services. Ad esempio:
    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.4.0'
        }
    

    Assicurati di aggiornare questo numero di versione ogni volta che viene aggiornato Google Play Services.

    Nota: se il numero di riferimenti al metodo nella tua app supera il limite di 65.000, la tua app potrebbe non riuscire a essere compilata. Potresti riuscire a mitigare questo problema durante la compilazione della tua app specificando solo le API Google Play Services specifiche utilizzate dalla tua app, anziché tutte. Per informazioni su come eseguire questa operazione, consulta Compilazione selettiva delle API nell'eseguibile.

  4. Salva le modifiche e fai clic su Sincronizza progetto con file Gradle nella barra degli strumenti.

Altro IDE

Per rendere le API Google Play Services disponibili nella tua app:

  1. Copia il progetto della libreria di <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ nella posizione in cui gestisci i tuoi progetti dell'app per Android.
  2. Nel progetto dell'app, fai riferimento al progetto della libreria di Google Play Services. Per ulteriori informazioni su come eseguire questa operazione, consulta la pagina relativa al riferimento di un progetto biblioteca dalla riga di comando.

    Nota: fai riferimento a una copia della libreria che hai copiato nell'area di lavoro di sviluppo. Non dovresti fare riferimento alla libreria direttamente dalla directory dell'SDK Android.

  3. Dopo aver aggiunto la libreria di Google Play Services come dipendenza per il progetto dell'app, apri il file manifest dell'app e aggiungi il seguente tag come elemento secondario dell'elemento <application>:
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

Dopo aver configurato il progetto per fare riferimento al progetto della libreria, puoi iniziare a sviluppare funzionalità con le API Google Play Services.

Crea un'eccezione ProGuard

Per evitare che ProGuard elimini le classi richieste, aggiungi le seguenti righe nel file /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