In diesem Leitfaden erfahren Sie, wie Sie mit den Success APIs in einer Android-App Erfolge in Ihrem Spiel freischalten und anzeigen können. 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 Konzepte für Spielerfolge ansehen.
Bevor du mit der Programmierung mit der API für Erfolge beginnst, solltest du Folgendes beachten:
- Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play-Spieldienste in der Anleitung zum Einrichten des Google Play Services SDK.
- Beschreiben Sie die Erfolge, die in Ihrem Spiel freigeschaltet oder angezeigt werden sollen. Folgen Sie dazu der Anleitung im Leitfaden zur Google Play Console.
- Laden Sie die Codebeispiele für Erfolge auf der Seite mit Android-Beispielen herunter und sehen Sie sich diese an.
- Machen Sie sich mit den Empfehlungen in der Checkliste für die Qualität vertraut.
Client für Erfolge abrufen
Damit Sie die API für Erfolge 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 Spielerkontoinformationen finden Sie unter Anmeldung in Android-Spielen.
Erfolge freischalten
Rufen Sie zum Freischalten eines Erfolgs die Methode AchievementsClient.unlock()
auf und übergeben Sie die Erfolgs-ID.
Im folgenden Code-Snippet sehen Sie, 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. Wenn du Aufrufe zum Aktualisieren und Laden von Erfolgen tätigst, solltest du dich auch an diese Best Practices halten, damit dein API-Kontingent nicht überschritten wird.
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. Anschließend kann die Benutzeroberfläche durch Aufrufen von startActivityForResult
aufgerufen werden.
Im folgenden Code-Snippet wird gezeigt, wie in Ihrer App die Standard-Benutzeroberfläche für Erfolge angezeigt werden 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.