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:
Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play-Spieldienste in der Anleitung Google Play Services SDK einrichten.
Legen Sie fest, welche Erfolge Ihr Spiel freischalten oder anzeigen soll. 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 prüfen Sie sie.
Machen Sie sich mit den Empfehlungen in der Checkliste zur Qualität vertraut.
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.