В связи с прекращением поддержки API Google Sign-In , мы удаляем SDK для игр версии 1 в 2026 году. После февраля 2025 года вы не сможете публиковать в Google Play игры, которые были интегрированы с SDK для игр версии 1. Мы рекомендуем использовать вместо него SDK для игр версии 2.
Хотя существующие игры с интеграцией предыдущих версий v1 будут продолжать работать еще пару лет, мы рекомендуем перейти на версию v2, начиная с июня 2025 года.
Данное руководство предназначено для использования SDK Play Games Services v1. Информацию о последней версии SDK см. в документации v2 .
В этом руководстве показано, как использовать API таблиц лидеров в Android-приложении для создания визуальных таблиц лидеров, записи результатов игрока и сравнения этих результатов с результатами предыдущих игровых сессий. API можно найти в пакетах com.google.android.gms.games и com.google.android.gms.games.leaderboards .
Прежде чем начать
Если вы еще этого не сделали, вам может быть полезно повторить основные принципы игры с таблицами лидеров .
Прежде чем начать программировать с использованием API таблиц лидеров:
- Следуйте инструкциям по установке и настройке вашего приложения для использования сервисов Google Play Games, приведенным в руководстве по настройке SDK Google Play Services .
- Настройте таблицы лидеров, которые вы хотите отображать или обновлять в своей игре, следуя инструкциям в руководстве Google Play Console .
- Загрузите и изучите примеры кода для таблиц лидеров на странице примеров Android .
- Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Загрузите клиент для таблиц лидеров.
Для начала использования API таблиц лидеров ваша игра должна получить объект LeaderboardsClient . Это можно сделать, вызвав метод Games.getLeadeboardsClient() и передав в него активность и учетную GoogleSignInAccount текущего игрока. Чтобы узнать, как получить информацию об учетной записи игрока, см. раздел «Вход в систему в играх Android» .
Обновить счет игрока
Когда счет игрока изменяется (например, когда игрок завершает игру), ваша игра может обновить его счет в таблице лидеров, вызвав метод LeaderboardsClient.submitScore() и передав в него идентификатор таблицы лидеров и исходное значение счета.
Следующий фрагмент кода показывает, как ваше приложение может обновлять счет игрока:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.submitScore(getString(R.string.leaderboard_id), 1337); Рекомендуется указывать идентификатор таблицы лидеров в файле strings.xml , чтобы игра могла ссылаться на таблицы лидеров по идентификатору ресурса. При выполнении запросов на обновление и загрузку результатов игроков также обязательно соблюдайте эти рекомендации , чтобы избежать превышения квоты API.
Отобразить таблицу лидеров
Для отображения таблицы лидеров вызовите LeaderboardsClient.getLeaderboardIntent() , чтобы получить Intent и создать стандартный пользовательский интерфейс таблицы лидеров. Затем ваша игра может отобразить этот интерфейс, вызвав startActivityForResult .
Приведенный ниже фрагмент кода показывает, как ваше приложение может обновлять счет игрока. В фрагменте кода RC_LEADERBOARD_UI — это произвольное целое число, обозначающее код запроса.
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); } }); }
Обратите внимание, что, даже если результат не возвращается, нам необходимо использовать startActivityForResult , чтобы API мог получить идентификатор вызывающего пакета. Пример стандартного пользовательского интерфейса таблицы лидеров показан ниже.
