In diesem Leitfaden erfahren Sie, wie Sie die Bestenlisten-APIs in einer Android-App verwenden, um visuelle Bestenlisten zu erstellen, die Punktzahl eines Spielers zu erfassen und sie mit der Punktzahl des Spielers aus früheren Spielsitzungen zu vergleichen. Die APIs befinden sich
in den Paketen com.google.android.gms.games
und com.google.android.gms.games.leaderboards.
Hinweis
Wir empfehlen Ihnen, sich mit den Konzepten für Bestenlisten vertraut zu machen, sofern Sie dies nicht schon getan haben.
Bevor Sie damit beginnen, die Bestenlisten-APIs fürs Coden einzusetzen, sollten Sie Folgendes tun:
Folgen Sie der Anleitung zum Installieren und Einrichten Ihrer App für die Verwendung der Google Play Games-Dienste im Leitfaden Google Play-Dienste SDK einrichten.
Definieren Sie die Bestenlisten, die in Ihrem Spiel angezeigt oder aktualisiert werden sollen, indem Sie dem Leitfaden für die Google Play Console folgen.
Laden Sie die Codebeispiele für Bestenlisten auf der Seite Android-Beispiele auf GitHub herunter und sehen Sie sie sich an.
Machen Sie sich mit den Empfehlungen der Qualitätscheckliste vertraut.
Bestenlisten-Client abrufen
Bevor Sie die Bestenlisten-API verwenden können, muss Ihr Spiel zuerst ein LeaderboardsClient-Objekt abrufen.
Rufen Sie dazu die Methode PlayGames.getLeaderboardsClient() auf und übergeben Sie die Aktivität.
Punktzahl des Spielers aktualisieren
Wenn sich die Punktzahl des Spielers ändert
(z. B. wenn der Spieler das Spiel beendet), kann das
Spiel die Punktzahl in der Bestenliste aktualisieren, indem es
LeaderboardsClient.submitScore(),
aufruft und die Bestenlisten-ID und den neuen Punktestand übergibt.
Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann:
PlayGames.getLeaderboardsClient(this)
.submitScore(getString(R.string.leaderboard_id), 1337);Es empfiehlt sich, die Bestenlisten-ID in der Datei strings.xml zu definieren, damit Ihr Spiel über die Ressourcen-ID auf die Bestenlisten verweisen kann. Wenn Sie Aufrufe zum
Aktualisieren und Laden von Spielergebnissen ausführen, sollten Sie auch diese
Best Practices befolgen, um Ihr API-Kontingent nicht zu überschreiten.
Bestenliste anzeigen
Rufen Sie LeaderboardsClient.getLeaderboardIntent() auf, um die Bestenliste aufzurufen und einen Intent zu erhalten, mit dem Sie die Standardbenutzeroberfläche für die Bestenliste erstellen können. Ihr Spiel kann die
Benutzeroberfläche dann durch Aufrufen von
startActivityForResult anzeigen.
Das folgende Code-Snippet zeigt, wie Ihre App die Punktzahl des Spielers aktualisieren kann.
Im Code-Snippet ist RC_LEADERBOARD_UI eine beliebige Ganzzahl für den Anfragecode.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { PlayGames.getLeaderboardsClient(this) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
Sie müssen startActivityForResult verwenden, auch wenn es kein Ergebnis zurückgibt.
Dadurch kann die API die Identität des aufrufenden Pakets abrufen. Die folgende Abbildung zeigt ein Beispiel für die Standardbenutzeroberfläche für Bestenlisten.