Erfolge für Android-Spiele

In diesem Leitfaden erfahren Sie, wie Sie mit den APIs für Erfolge in einer Android-App Erfolge in Ihrem Spiel freischalten und anzeigen. Sie finden die APIs in den Paketen com.google.android.gms.games und com.google.android.gms.games.achievements.

Vorbereitung

Lesen Sie sich die Konzepte der Erfolge-Spiele noch einmal durch, falls Sie dies noch nicht getan haben.

Bevor Sie mit dem Programmieren mit der Achievements API beginnen:

Client für Erfolge abrufen

Damit Sie die Success API verwenden können, muss Ihr Spiel zuerst ein AchievementsClient-Objekt abrufen. Rufen Sie dazu die Methode Games.getAchievementClient() auf und übergeben Sie die Aktivität.

Erfolge freischalten

Um einen Erfolg freizuschalten, rufen Sie die Methode AchievementsClient.unlock() auf und übergeben Sie die Erfolgs-ID.

Das folgende Code-Snippet zeigt, wie Sie mit Ihrer App Erfolge freischalten können:

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

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

Das folgende Code-Snippet zeigt, wie deine App den Erfolg des Spielers erhöhen kann:

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

Du musst keinen zusätzlichen Code schreiben, um den Erfolg freizuschalten. Die Google Play-Spieldienste schalten den Erfolg automatisch frei, sobald er die erforderliche Anzahl von Schritten erreicht hat.

Es empfiehlt sich, die Erfolgs-IDs in der Datei strings.xml zu definieren, damit Ihr Spiel anhand der Ressourcen-ID auf die Erfolge verweisen kann. Wenn Sie Aufrufe zum Aktualisieren und Laden von Erfolgen ausführen, sollten Sie außerdem diese Best Practices befolgen, um eine Überschreitung Ihres API-Kontingents zu vermeiden.

Erfolge anzeigen

Wenn Sie die Erfolge eines Spielers anzeigen lassen möchten, rufen Sie AchievementsClient.getAchievementsIntent() auf. Damit wird ein Intent-Objekt abgerufen, mit dem die Standardoberfläche für Erfolge erstellt wird. Die Benutzeroberfläche des Spiels kann dann durch Aufrufen von startActivityForResult aufgerufen werden.

Das folgende Code-Snippet zeigt, wie in Ihrer Anwendung die Standardbenutzeroberfläche für Erfolge angezeigt werden kann. Im Snippet ist RC_ACHIEVEMENT_UI eine beliebige Ganzzahl, die das Spiel als Anfragecode verwendet.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(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.