Po wycofaniu interfejsu Google Sign-In
API w 2026 roku usuniemy pakiet SDK do gier w wersji 1. Z końcem lutego 2025 r. nie będzie już można publikować w Google Play nowych tytułów, w których zastosowano integrację z wersją 1 pakietu SDK gier. Zamiast tego zalecamy używanie pakietu SDK do gier w wersji 2.
Dotychczasowe tytuły z integracjami gier w wersji 1 będą działać jeszcze przez kilka lat, ale zachęcamy do przejścia na wersję 2 od czerwca 2025 r.
Ten przewodnik dotyczy korzystania z 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 można znaleźć w pakietach com.google.android.gms.games
i com.google.android.gms.games.leaderboards
.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiono, warto zapoznać się z pojęciami dotyczącymi gier z tablicami wyników.
Zanim zaczniesz pisać kod z użyciem interfejsów API tablic wyników:
- Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji, aby korzystać z usług gier Google Play, które znajdziesz w przewodniku Konfigurowanie pakietu SDK usług Google Play.
- Określ tabele wyników, które mają być wyświetlane lub aktualizowane w Twojej grze, postępując zgodnie z instrukcjami w przewodniku po Konsoli Google Play.
- Pobierz i przejrzyj przykładowy kod tablic wyników na stronie z przykładowymi aplikacjami na Androida.
- Zapoznaj się z rekomendacjami opisanymi w liście kontrolnej jakości.
Pobieranie klienta tabeli 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()
i przekaż do niej aktywność oraz GoogleSignInAccount
bieżącego gracza. Aby dowiedzieć się, jak pobrać informacje o koncie gracza, przeczytaj artykuł Logowanie się w grach na Androida.
Aktualizowanie wyniku gracza
Gdy wynik gracza się zmieni (np. po zakończeniu gry), gra może zaktualizować jego wynik w tabeli wyników, wywołując LeaderboardsClient.submitScore()
i przekazując identyfikator tabeli wyników oraz wartość surowego wyniku.
Poniższy fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .submitScore(getString(R.string.leaderboard_id), 1337);
Dobrym rozwiązaniem jest zdefiniowanie identyfikatora tabeli wyników w pliku strings.xml
, aby gra mogła odwoływać się do tabel wyników za pomocą identyfikatora zasobu. Podczas wywoływania funkcji aktualizowania i wczytywania wyników graczy postępuj zgodnie z tymi sprawdzonymi metodami, aby uniknąć przekroczenia limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tabelę wyników, wywołaj funkcję LeaderboardsClient.getLeaderboardIntent()
, aby uzyskać Intent
, która utworzy domyślny interfejs użytkownika tabeli wyników. Gra może wtedy wyświetlić interfejs, wywołując funkcję
startActivityForResult
.
Poniższy fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza. We fragmencie kodu RC_LEADERBOARD_UI
to dowolna liczba całkowita oznaczająca kod żą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 jest zwracany żaden wynik, musimy użyć startActivityForResult
, aby interfejs API mógł uzyskać tożsamość pakietu wywołującego. Poniżej znajdziesz przykład domyślnego interfejsu tablicy wyników.
