Para acceder a la funcionalidad de los Servicios de juego de Google Play, tu juego debe proporcionar la cuenta del jugador autenticado. En esta documentación, se describe cómo implementar una experiencia de autenticación perfecta en tu juego.
El SDK de la versión 2 de los Servicios de juego de Play ofrece varias mejoras que aumentan la cantidad de usuarios autenticados en tu juego y facilitan el desarrollo:
- Mejoras para los usuarios:
- Después de seleccionar una cuenta predeterminada, los usuarios se autentican sin tener que interactuar con un mensaje.
- Los usuarios ya no necesitan descargar la app de Play Juegos para autenticarse con los Servicios de juego de Play ni para crear una cuenta nueva.
- Ahora los usuarios pueden administrar sus cuentas de los Servicios de juego de Play para varios juegos desde una sola página.
- Mejoras para desarrolladores:
- El código de cliente ya no necesita controlar el flujo de autenticación o salida, ya que el acceso se activa automáticamente cuando se inicia el juego, y la administración de la cuenta se controla en la configuración del SO.
Integración de clientes nuevos
En esta sección, se muestra cómo integrar clientes nuevos con la versión 2 de Acceso a los Servicios de juego de Play.
Agrega la dependencia
Agrega la dependencia del SDK de Servicios de juego de Play al archivo build.gradle
en el nivel raíz de tu app. Si usas Gradle, puedes agregar o actualizar la dependencia de la siguiente manera:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
Define el ID del proyecto
Para agregar el ID del proyecto del SDK de los Servicios de juego de Play a tu app, sigue estos pasos:
En el archivo
AndroidManifest.xml
de tu app, agrega el siguiente elemento<meta-data>
y los atributos al elemento<application>
:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
Define la referencia
@string/game_services_project_id
del recurso de strings usando como valor el ID del proyecto de los Servicios de juego. Puedes encontrar el ID del proyecto de los Servicios de juego debajo del nombre del juego en la página Configuración de Google Play Console.En el archivo
res/values/strings.xml
, agrega una referencia del recurso de strings y establece el ID del proyecto como el valor. En Google Play Console, puedes encontrar el ID del proyecto debajo del nombre del juego en la página Configuración. Por ejemplo:<!-- 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>
Inicializa el SDK
Inicializa el SDK de Play Juegos en la devolución de llamada onCreate(..)
de tu clase Application
.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Obtén el resultado de la autenticación
Cuando se inicie el juego, siempre intentará autenticar al usuario. Para autenticar al usuario, debes verificar que se haya autenticado correctamente y, luego, obtener su ID de jugador.
Para verificar el intento de autenticación, llama a GamesSignInClient.isAuthenticated()
y usa addOnCompleteListener
para recuperar los resultados. Por ejemplo:
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().
}
});
Si el usuario decide no autenticarse cuando se inicia el juego, se recomienda que sigas mostrando un botón con el ícono de Play Juegos o que le presentes al usuario una pantalla de acceso que tenga un botón con el ícono de Play Juegos como una de las opciones de autenticación, y que vuelvas a intentar autenticar al usuario con una llamada a GamesSignInClient.signIn()
si presiona el botón.
Después de verificar que el usuario se autenticó, puedes recuperar el ID de jugador para identificarlo. Por ejemplo:
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);