Bestenlisten in Android-Spielen

Nach der Einstellung der Google-Anmeldung-API wird das games v1 SDK im Jahr 2026 entfernt. Ab Februar 2025 kannst du bei Google Play keine Titel mehr veröffentlichen, die neu in Games SDK V1 integriert wurden. Wir empfehlen, stattdessen das Games SDK V2 zu verwenden.
Bestehende Titel mit den vorherigen Integrationen für Spiele v1 funktionieren zwar noch einige Jahre, aber wir empfehlen Ihnen, ab Juni 2025 zu Version 2 zu migrieren.
In diesem Leitfaden wird die Verwendung des Play Games Services SDK V1 beschrieben. Informationen zur neuesten SDK-Version finden Sie in der Dokumentation zu Version 2.

In diesem Leitfaden erfahren Sie, wie Sie Bestenlisten-APIs in einer Android-Anwendung verwenden, um visuelle Bestenlisten zu erstellen, die Punktzahl eines Spielers aufzuzeichnen und die Punktzahl mit der Punktzahl des Spielers aus früheren Spielsitzungen zu vergleichen. Die APIs befinden sich in den Paketen com.google.android.gms.games und com.google.android.gms.games.leaderboards.

Hinweis

Falls Sie das noch nicht getan haben, sollten Sie sich mit den Konzepten für Bestenlisten vertraut machen.

Bevor Sie mit der Programmierung mit den Leaderboard-APIs beginnen, sollten Sie Folgendes tun:

Leaderboards-Client abrufen

Bevor Sie die Leaderboards API verwenden können, muss Ihr Spiel zuerst ein LeaderboardsClient-Objekt abrufen. Rufen Sie dazu die Methode Games.getLeadeboardsClient() auf und übergeben Sie die Aktivität und die GoogleSignInAccount für den aktuellen Spieler. Informationen zum Abrufen der Spieler-Kontoinformationen finden Sie unter Anmeldung in Android-Spielen.

Spielergebnis aktualisieren

Wenn sich die Punktzahl des Spielers ändert (z. B. wenn der Spieler das Spiel beendet), kann das Spiel die Punktzahl in der Bestenliste aktualisieren, indem es LeaderboardsClient.submitScore() aufruft und die Bestenlisten-ID und den Rohpunktzahlwert übergibt.

Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann:

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

Es empfiehlt sich, die Bestenlisten-ID in der Datei strings.xml zu definieren, damit Ihr Spiel anhand der Ressourcen-ID auf die Bestenlisten verweisen kann. Wenn Sie Aufrufe zum Aktualisieren und Laden von Spielergebnissen ausführen, sollten Sie auch diese Best Practices befolgen, um Ihr API-Kontingent nicht zu überschreiten.

Bestenliste anzeigen

Rufen Sie LeaderboardsClient.getLeaderboardIntent() auf, um die Bestenliste aufzurufen und eine Intent zu erhalten, um die Standardbenutzeroberfläche für die Bestenliste zu erstellen. Ihr Spiel kann die Benutzeroberfläche dann durch Aufrufen von startActivityForResult aufrufen.

Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann. Im Code-Snippet ist RC_LEADERBOARD_UI eine beliebige Ganzzahl für den Anforderungscode.

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);
        }
      });
}

Auch wenn kein Ergebnis zurückgegeben wird, müssen wir startActivityForResult verwenden, damit die API die Identität des aufrufenden Pakets abrufen kann. Unten sehen Sie ein Beispiel für die Standard-Bestenlisten-UI.