Tabele wyników w grach na Androida

W związku z wycofaniem interfejsu Logowania przez Google w 2026 r. usuniemy pakiet SDK gier w wersji 1. Po lutym 2025 r. nie będzie można publikować w Google Play tytułów, które zostały dopiero zintegrowane z pakietem SDK gier w wersji 1. Zalecamy zamiast tego korzystać z pakietu SDK gier w wersji 2.
Chociaż istniejące tytuły z integracją poprzedniej wersji gry 1 będą działać przez kilka lat, zachęcamy do przejścia na wersję 2 od czerwca 2025 r.
Ten przewodnik dotyczy pakietu SDK usług gier Play w wersji 1. Informacje o najnowszej wersji pakietu SDK znajdziesz w dokumentacji wersji 2.

Z tego przewodnika dowiesz się, jak używać interfejsów API tabel wyników w aplikacji na Androida, aby tworzyć wizualne tabele wyników, rejestrować wyniki graczy i porównywać je z wynikami z poprzednich sesji gry. Interfejsy API znajdują się w pakietach com.google.android.gms.gamescom.google.android.gms.games.leaderboards.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobisz, warto zapoznać się z koncepcjami dotyczącymi tabel liderów w grach.

Zanim zaczniesz kodować przy użyciu interfejsów API tablic wyników:

Pobieranie klienta tabel wyników

Aby zacząć korzystać z interfejsu API tabel wyników, gra musi najpierw uzyskać obiekt LeaderboardsClient. Aby to zrobić, wywołaj metodę Games.getLeadeboardsClient(), przekazując w niej aktywność i GoogleSignInAccount dla bieżącego odtwarzacza. Aby dowiedzieć się, jak pobrać informacje o koncie gracza, przeczytaj artykuł Logowanie się w Grach Play.

Zmień wynik gracza

Gdy wynik gracza ulegnie zmianie (np. gdy ukończy on grę), gra może zaktualizować jego wynik na tablicy wyników, wywołując funkcję LeaderboardsClient.submitScore() i przekazując identyfikator tablicy wyników oraz wartość surowego wyniku.

Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

Dobrą praktyką jest zdefiniowanie identyfikatora tabeli wyników w pliku strings.xml, aby gra mogła się do niej odwoływać za pomocą identyfikatora zasobu. Podczas wykonywania wywołań w celu aktualizowania i wczytywania wyników graczy pamiętaj też o tych sprawdzonych metodach, aby nie przekroczyć limitu interfejsu API.

Wyświetlanie tabeli wyników

Aby wyświetlić tabelę wyników, wywołaj funkcję LeaderboardsClient.getLeaderboardIntent(), aby uzyskać wartość Intent, która służy do utworzenia domyślnego interfejsu tabeli wyników. Gra może wyświetlić interfejs, wywołując funkcję startActivityForResult.

Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza. W fragmencie kodu RC_LEADERBOARD_UI jest dowolną liczbą całkowitą dla kodu żądania.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

Zwróć uwagę, że mimo że nie zwracamy żadnego wyniku, musimy użyć parametru startActivityForResult, aby interfejs API mógł uzyskać tożsamość pakietu wywołującego. Poniżej przedstawiamy przykład domyślnego interfejsu tabeli liderów.