Para acessar a funcionalidade dos serviços relacionados a jogos do Google Play, seu jogo precisa fornecer a conta do jogador autenticado. Esta documentação descreve como implementar uma experiência de autenticação perfeita no seu jogo.
O SDK dos serviços relacionados a jogos do Google Play v2 traz uma série de melhorias que aumentam o número de usuários autenticados no jogo e facilitam o desenvolvimento:
- Melhorias para os usuários:
- Depois de selecionar uma conta padrão, os usuários são autenticados sem precisar interagir com uma solicitação.
- Os usuários não precisam mais fazer o download do app Play Games para se autenticar nos serviços relacionados a jogos do Google Play nem criar uma nova conta.
- Agora os usuários podem gerenciar as contas dos serviços relacionados a jogos do Google Play para vários jogos em uma única página.
- Melhorias para desenvolvedores:
- O código do cliente não precisa mais processar o fluxo de autenticação ou saída, já que o login é acionado automaticamente quando o jogo é iniciado, e o gerenciamento da conta é processado nas configurações do SO.
Integração de novos clientes
Esta seção mostra como fazer uma integração de novos clientes com o login dos serviços relacionados a jogos do Google Play v2.
Adicionar a dependência
Adicione a dependência do SDK dos serviços relacionados a jogos do Google Play ao arquivo
build.gradle
no nível raiz do app. Se você estiver usando o Gradle, vai poder adicionar ou atualizar a
dependência da seguinte maneira:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
Definir o ID do projeto
Para adicionar o ID do projeto do SDK dos serviços relacionados a jogos do Google Play ao seu app, siga estas etapas:
No arquivo
AndroidManifest.xml
do seu app, adicione o seguinte elemento<meta-data>
e atributos ao elemento<application>
:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
Defina a referência
@string/game_services_project_id
do recurso de string usando o ID do projeto do jogo nos serviços relacionados a jogos como o valor. O ID do projeto nos serviços relacionados a jogos pode ser encontrado abaixo do nome do jogo na página Configuração do Google Play Console.No seu arquivo
res/values/strings.xml
, adicione uma referência de recurso de string e defina o ID do projeto como o valor. No Google Play Console, você encontra o ID do projeto abaixo do nome do jogo na página Configuração. Exemplo:<!-- 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>
Inicializar o SDK
Inicialize o SDK do Play Games no callback onCreate(..)
da classe
Application
.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Receber o resultado da autenticação
Quando o jogo é iniciado, ele sempre tenta autenticar o usuário. Para autenticar o usuário, você precisa verificar se ele fez login e, em seguida, receber o ID do jogador.
Para verificar a tentativa de autenticação, chame GamesSignInClient.isAuthenticated()
e
use addOnCompleteListener
para recuperar os resultados. Exemplo:
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Show a sign-in button to ask players to authenticate. Clicking it should
// call GamesSignInClient.signIn().
}
});
Se o usuário optar por não se autenticar quando o jogo for iniciado, é
recomendado que você continue mostrando um botão com o ícone do Play Games ou
apresente ao usuário uma tela de login com um botão com o ícone do Play Games
como uma das opções de autenticação e tente autenticar o usuário
novamente chamando GamesSignInClient.signIn()
se ele pressionar o botão.
Depois de verificar se o usuário está autenticado, você pode recuperar o ID do jogador
para identificá-lo. Exemplo:
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);