Erfolge in Android-Spielen

Nach der Einstellung der Google Sign-In API wird das Games v1 SDK 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 die Verwendung des Games SDK V2.
Vorhandene Titel mit der vorherigen V1-Integration für Spiele funktionieren noch einige Jahre lang. Wir empfehlen dir aber, ab Juni 2025 auf V2 umzustellen.
Dieser Leitfaden bezieht sich auf die Verwendung des Play Games Services SDK v1. Informationen zur neuesten SDK-Version finden Sie in der Dokumentation für Version 2.

In diesem Leitfaden erfahren Sie, wie Sie die APIs für Erfolge in einer Android-Anwendung verwenden, um Erfolge in Ihrem Spiel freizuschalten und anzuzeigen. Die APIs finden Sie in den Paketen com.google.android.gms.games und com.google.android.gms.games.achievements.

Hinweis

Falls Sie es noch nicht getan haben, sollten Sie sich die Spielkonzepte für Erfolge ansehen.

Bevor du mit der Programmierung mit der API für Erfolge beginnst, solltest du Folgendes beachten:

Client für Erfolge abrufen

Damit Sie die Achievements API verwenden können, muss Ihr Spiel zuerst ein AchievementsClient-Objekt abrufen. Rufe dazu die Methode Games.getAchievementClient() auf und übergebe die Aktivität und den GoogleSignInAccount für den aktuellen Spieler. Informationen zum Abrufen der Informationen zum Spielerkonto finden Sie unter Anmeldung in Android-Spielen.

Erfolge freischalten

Wenn Sie einen Erfolg freischalten möchten, rufen Sie die Methode AchievementsClient.unlock() auf und geben Sie die Erfolgs-ID an.

Im folgenden Code-Snippet wird gezeigt, wie in Ihrer App Erfolge freigeschaltet werden können:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

Wenn es sich um einen inkrementellen Erfolg handelt (d. h., es sind mehrere Schritte erforderlich, um ihn freizuschalten), rufe stattdessen AchievementsClient.increment() auf.

Im folgenden Code-Snippet wird gezeigt, wie Ihre App den Erfolg des Spielers erhöhen kann:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

Sie müssen keinen zusätzlichen Code schreiben, um den Erfolg freizuschalten. Der Erfolg wird automatisch von Google Play Spielediensten freigeschaltet, sobald die erforderliche Anzahl von Schritten erreicht wurde.

Es empfiehlt sich, die Erfolgs-IDs in der Datei strings.xml zu definieren, damit Ihr Spiel die Erfolge anhand der Ressourcen-IDs referenzieren kann. Beachte bei Aufrufen zum Aktualisieren und Laden von Erfolgen auch die folgenden Best Practices, um ein Überschreiten deines API-Kontingents zu vermeiden.

Erfolge anzeigen

Wenn du die Erfolge eines Spielers anzeigen möchtest, ruf AchievementsClient.getAchievementsIntent() auf, um eine Intent zu erhalten, mit der du die Standardoberfläche für Erfolge erstellen kannst. Ihr Spiel kann dann die Benutzeroberfläche aufrufen, indem es startActivityForResult aufruft.

Im folgenden Code-Snippet wird gezeigt, wie Ihre App die standardmäßige Benutzeroberfläche für Erfolge anzeigen kann. Im Snippet ist RC_ACHIEVEMENT_UI eine beliebige Ganzzahl, die vom Spiel als Anfragecode verwendet wird.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Unten sehen Sie ein Beispiel der Standard-Benutzeroberfläche für Erfolge.