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.