Classements dans les jeux Android

Suite à l'abandon de l'API Connexion Google, nous allons supprimer le SDK games v1 en 2026. Après février 2025, vous ne pourrez plus publier sur Google Play des titres nouvellement intégrés au SDK v1 des jeux. Nous vous recommandons d'utiliser le SDK Games v2 à la place.
Bien que les titres existants avec les intégrations de la version 1 des jeux précédents continuent de fonctionner pendant quelques années, nous vous encourageons à migrer vers la version 2 à partir de juin 2025.
Ce guide explique comment utiliser le SDK de la version 1 des services de jeux Play. Pour en savoir plus sur la dernière version du SDK, consultez la documentation de la version 2.

Ce guide vous explique comment utiliser les API de classement dans une application Android pour créer des classements visuels, enregistrer le score d'un joueur et le comparer à ses scores précédents. Les API sont disponibles dans les packages com.google.android.gms.games et com.google.android.gms.games.leaderboards.

Avant de commencer

Si vous ne l'avez pas déjà fait, consultez les concepts de classements dans les jeux.

Avant de commencer à coder à l'aide des API de classement :

Obtenir le client de classement

Pour utiliser l'API de classement, votre jeu doit d'abord obtenir un objet LeaderboardsClient. Pour ce faire, appelez la méthode Games.getLeadeboardsClient() et transmettez l'activité et le GoogleSignInAccount pour le lecteur actuel. Pour savoir comment récupérer les informations du compte du joueur, consultez Se connecter dans les jeux Android.

Actualiser le score du joueur

Lorsque le score du joueur change (par exemple, en fin de partie), votre jeu peut modifier son score dans le classement en appelant LeaderboardsClient.submitScore() et en indiquant l'identifiant du classement général et la valeur du score brut.

L'extrait de code suivant montre comment votre application peut mettre à jour le score du joueur :

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

Une bonne pratique consiste à définir l'identifiant du classement dans votre fichier strings.xml afin que votre jeu puisse référencer les classements par identifiant de ressource. Lorsque vous appelez pour actualiser et charger les scores des joueurs, veillez également à suivre ces bonnes pratiques afin d'éviter de dépasser votre quota d'API.

Afficher un classement

Pour afficher un classement, appelez LeaderboardsClient.getLeaderboardIntent() afin d'obtenir un Intent pour créer l'interface utilisateur du classement par défaut. Votre jeu peut alors afficher l'interface utilisateur en appelant startActivityForResult.

L'extrait de code suivant montre comment votre application peut actualiser le score du joueur. Dans l'extrait de code, RC_LEADERBOARD_UI est un nombre entier arbitraire associé au code de requête.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

Notez que même si aucun résultat n'est renvoyé, nous devons utiliser startActivityForResult pour que l'API puisse obtenir l'identité du package appelant. Voici un exemple d'interface utilisateur par défaut pour les classements :