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 pour créer des annonces, collecter des données analytiques, authentifier des utilisateurs, 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 d'un utilisateur, car les mises à jour ne peuvent pas toujours être distribuées immédiatement à 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 les étapes indiquées.

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

  1. Ouvrez le fichier build.gradle dans le répertoire de votre module d'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 pour votre module d'application. Pour en savoir plus sur Gradle, consultez Construire votre projet avec Gradle.

  2. Vérifiez que google() est inclus dans la liste repositories.
    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:22.0.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éthode dans votre application dépasse la limite de 65 000, la compilation de votre application risque d'échouer. Vous pouvez 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, au lieu de toutes. Pour savoir comment procéder, consultez la section Compiler sélectivement 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.

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

  1. Copiez le projet de bibliothèque à l'emplacement <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 en savoir plus, consultez la section Référencer un projet de bibliothèque dans la ligne de commande.

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

  3. Après avoir ajouté la bibliothèque des 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