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 à une gamme d'API permettant de créer des annonces, de collecter des données d'analyse, d'authentifier les utilisateurs, d'intégrer des cartes et bien plus encore. Pour en savoir plus, consultez la section Présentation des services Google Play. Il est important de vous assurer que le bon APK des services Google Play est installé sur l'appareil de l'utilisateur, car les mises à jour peuvent ne pas être immédiatement disponibles pour tous les utilisateurs.

Ajouter les services Google Play à votre projet

Sélectionnez votre environnement de développement ci-dessous et ajoutez les services Google Play à votre projet en suivant la procédure indiquée.

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 de votre module d'application. Pour en savoir plus sur Gradle, consultez Compiler votre projet avec Gradle.

  2. Vérifiez que google() est inclus dans le repositories listé.
    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.4.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, la compilation de votre application peut échouer. Vous pouvez peut-être atténuer ce problème lors de la compilation de votre application en ne spécifiant que les API de services Google Play spécifiques qu'elle utilise, et non toutes. Pour savoir comment procéder, consultez la section Compiler de manière sélective des API dans votre exécutable.

  4. Enregistrez les modifications, puis 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 disponible dans <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ à l'emplacement où vous gérez vos projets d'application Android.
  2. Dans votre projet d'application, référencez le projet de bibliothèque des services Google Play. Pour savoir comment procéder, consultez la section Référencer un projet de bibliothèque sur la 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