Чтобы получить доступ к функциям игровых сервисов Google Play, ваша игра должна предоставить учетную запись вошедшего в систему игрока. В этой документации описывается, как реализовать беспрепятственный вход в вашу игру.
SDK Play Games Services v2 содержит ряд улучшений, которые увеличивают количество пользователей, вошедших в вашу игру, и упрощают разработку:
- Улучшения для пользователей:
- После выбора учетной записи по умолчанию пользователи входят в систему без необходимости взаимодействия с подсказкой.
- Пользователям больше не нужно загружать приложение Play Games, чтобы войти в игровые сервисы Play или создать новую учетную запись.
- Теперь пользователи могут управлять своими учетными записями игровых сервисов Play для нескольких игр с одной страницы.
- Улучшения для разработчиков:
- Клиентскому коду больше не нужно обрабатывать процесс входа или выхода, поскольку вход в систему запускается автоматически при запуске игры, а управление учетной записью осуществляется в настройках ОС.
Интеграция нового клиента
В этом разделе показано, как выполнить интеграцию нового клиента с Play Games Services Sign In v2.
Добавьте зависимость
Добавьте зависимость Play Game Services SDK в файл build.gradle
корневого уровня вашего приложения. Если вы используете Gradle, вы можете добавить или обновить зависимость следующим образом:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
Определите идентификатор проекта
Чтобы добавить идентификатор проекта Play Games Services SDK в свое приложение, выполните следующие действия:
В файле
AndroidManifest.xml
вашего приложения добавьте следующий элемент<meta-data>
и атрибуты к элементу<application>
:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
Определите ссылку на ресурс String
@string/game_services_project_id
используя в качестве значения идентификатор проекта игровых сервисов вашей игры. Идентификатор вашего проекта игровых сервисов можно найти под названием вашей игры на странице конфигурации в консоли Google Play.В файле
res/values/strings.xml
добавьте ссылку на строковый ресурс и установите идентификатор своего проекта в качестве значения. В консоли Google Play вы можете найти идентификатор своего проекта под названием игры на странице конфигурации . Например:<!-- res/values/strings.xml --> <resources> <!-- Replace 0000000000 with your game’s project id. Example value shown above. --> <string translatable="false" name="game_services_project_id"> 0000000000 </string> </resources>
Инициализируйте SDK
Инициализируйте Play Games SDK в обратном вызове onCreate(..)
вашего класса Application
.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Получить результат входа
Когда ваша игра запускается, она всегда пытается войти в систему пользователя. Чтобы аутентифицировать пользователя, вы должны убедиться, что пользователь успешно вошел в систему, а затем получить его идентификатор игрока.
Чтобы проверить попытку входа, вызовите GamesSignInClient.isAuthenticated()
и используйте addOnCompleteListener
для получения результатов. Например:
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a
// login button to ask players to sign-in. Clicking it should
// call GamesSignInClient.signIn().
}
});
Если пользователь решает не входить в систему при запуске игры, вы можете при желании продолжить отображение кнопки со значком Play Games и попытаться снова войти в систему, вызвав GamesSignInClient.signIn()
если пользователь нажимает кнопку.
Убедившись, что пользователь вошел в систему, вы можете получить идентификатор игрока, чтобы идентифицировать пользователя. Например:
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);