После прекращения поддержки Google Sign-In API в 2026 году мы удаляем SDK игр v1. После февраля 2025 года вы не сможете публиковать в Google Play игры, недавно интегрированные с SDK игр v1. Вместо этого мы рекомендуем использовать SDK games v2.
Хотя существующие игры с интеграцией предыдущих игр версии 1 продолжат функционировать в течение нескольких лет, вам рекомендуется перейти на версию 2, начиная с июня 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 в руководстве по настройке SDK сервисов Google Play .
- Определите таблицы лидеров, которые вы хотите, чтобы ваша игра отображала или обновляла, следуя инструкциям в руководстве по консоли Google Play .
- Загрузите и просмотрите примеры кода для таблиц лидеров на странице образцов 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 мог получить идентификатор вызывающего пакета. Пример пользовательского интерфейса таблицы лидеров по умолчанию показан ниже.
