Configuration pour le développement avec le framework d'application Cast (CAF) pour Android

Prérequis

Le SDK Google Cast pour Android fait partie du SDK des services Google Play et n'a pas besoin d'être téléchargé séparément.

Remarque: Les services Google Play vous donnent accès à toute une gamme d'API permettant de créer des annonces, de collecter des données analytiques, d'authentifier des utilisateurs, d'intégrer des cartes, etc. Pour en savoir plus, consultez la page Présentation des services Google Play. Vous devez vous assurer que le bon APK de services Google Play est installé sur l'appareil d'un utilisateur, car il est possible que tous les utilisateurs ne reçoivent pas immédiatement les mises à jour.

Ajouter les services Google Play à votre projet

Sélectionnez votre environnement de développement ci-dessous et ajoutez des services Google Play à votre projet en suivant les étapes indiquées.

Android Studio

Pour rendre les API des services Google Play disponibles pour votre application:

  1. Ouvrez le fichier build.gradle dans le répertoire du module de votre application.

    Remarque:Les projets Android Studio contiennent un fichier build.gradle de premier niveau et un fichier build.gradle pour chaque module. Veillez à modifier le fichier du module d'application. Pour en savoir plus sur Gradle, consultez Compiler votre projet avec Gradle.

  2. Vérifiez que google() est inclus dans la repositories répertoriée.
    repositories {
        google()
    }
    
  3. Ajoutez une règle de compilation sous dependencies pour la dernière version de play-services. Exemple :
    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.3.0'
        }
    

    Veillez à mettre à jour ce numéro de version chaque fois que les services Google Play sont mis à jour.

    Remarque:Si le nombre de références de méthodes dans votre application dépasse la limite de 65 000, il se peut que la compilation de votre application échoue. Vous pourrez peut-être atténuer ce problème lors de la compilation de votre application en spécifiant uniquement les API de services Google Play spécifiques que votre application utilise, et non toutes. Pour savoir comment procéder, consultez la section Compiler des API de manière sélective dans votre fichier exécutable.

  4. Enregistrez les modifications et cliquez sur Sync Project with Gradle Files (Synchroniser le projet avec les fichiers Gradle) dans la barre d'outils.

Autre IDE

Pour rendre les API des services Google Play disponibles pour votre application:

  1. Copiez le projet de bibliothèque situé à l'emplacement <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ où vous gérez vos projets d'application Android.
  2. Dans votre projet d'application, référencez le projet de la bibliothèque de services Google Play. Pour savoir comment procéder, consultez la section Référencer un projet Bibliothèque en ligne de commande.

    Remarque:Vous devez référencer une copie de la bibliothèque que vous avez copiée dans votre espace de travail de développement. Vous ne devez pas référencer la bibliothèque directement à partir du répertoire du SDK Android.

  3. Après avoir ajouté la bibliothèque de services Google Play en tant que dépendance pour votre projet d'application, ouvrez le fichier manifeste de votre application et ajoutez la balise suivante en tant qu'enfant de l'élément <application> :
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

Une fois que vous avez configuré votre projet pour référencer le projet de bibliothèque, vous pouvez commencer à développer des fonctionnalités avec les API des services Google Play.

Créer une exception ProGuard

Pour empêcher ProGuard de supprimer les classes requises, ajoutez les lignes suivantes dans le fichier /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