In diesem Leitfaden erfahren Sie, wie Sie die Achievements APIs in einer Android-Anwendung verwenden, um Erfolge in Ihrem Spiel freizuschalten und anzuzeigen. Die APIs befinden sich in den Paketen com.google.android.gms.games
und com.google.android.gms.games.achievements
.
Hinweis
Wenn Sie es noch nicht getan haben, sollten Sie sich die Spielkonzepte für Erfolge ansehen.
Bevor Sie mit der Programmierung mit der Achievements API beginnen, sollten Sie Folgendes tun:
Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play-Spieldienste im Leitfaden Google Play Services SDK einrichten.
Definieren Sie die Erfolge, die in Ihrem Spiel freigeschaltet oder angezeigt werden sollen, indem Sie der Anleitung im Google Play Console-Leitfaden folgen.
Laden Sie die Codebeispiele für Erfolge auf der Seite mit Android-Beispielen herunter und sehen Sie sie sich an.
Machen Sie sich mit den Empfehlungen in der Qualitätscheckliste vertraut.
Achievements-Client abrufen
Damit Sie die Achievements 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
Rufen Sie die Methode AchievementsClient.unlock()
auf und übergeben Sie die Erfolgs-ID, um einen Erfolg freizuschalten.
Das folgende Code-Snippet zeigt, wie Ihre App Erfolge freischalten kann:
PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));
Wenn der Erfolg vom Typ inkrementell ist (d. h. mehrere Schritte zum Freischalten erforderlich sind), rufen Sie stattdessen AchievementsClient.increment()
auf.
Das folgende Code-Snippet zeigt, wie Ihre App die Errungenschaft des Spielers erhöhen kann:
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
Sie müssen keinen zusätzlichen Code schreiben, um den Erfolg freizuschalten. Google Play-Spieldienste schalten den Erfolg automatisch frei, sobald die erforderliche Anzahl von Schritten erreicht ist.
Es empfiehlt sich, die Erfolgs-IDs in der Datei strings.xml
zu definieren, damit in Ihrem Spiel anhand der Ressourcen-ID auf die Erfolge verwiesen werden kann. Wenn Sie Aufrufe zum Aktualisieren und Laden von Erfolgen ausführen, sollten Sie auch diese Best Practices befolgen, um Ihr API-Kontingent nicht zu überschreiten.
Erfolge anzeigen
Rufen Sie AchievementsClient.getAchievementsIntent()
auf, um die Erfolge eines Spielers anzuzeigen. Dadurch wird ein Intent
erstellt, mit dem die Standardbenutzeroberfläche für Erfolge erstellt wird. Ihr Spiel kann die Benutzeroberfläche dann durch Aufrufen von startActivityForResult
aufrufen.
Das folgende Code-Snippet zeigt, wie Ihre App die Standardbenutzeroberfläche für Erfolge anzeigen kann. Im Snippet ist RC_ACHIEVEMENT_UI
eine beliebige Ganzzahl, die vom Spiel als Anforderungscode verwendet wird.
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.
