Per accedere alla funzionalità di Google Play Games Services, il tuo gioco deve fornire l'account del giocatore autenticato. Questa documentazione descrive come implementare un'esperienza di autenticazione senza interruzioni nel tuo gioco.
L'SDK dei servizi per i giochi di Play v2 introduce una serie di miglioramenti che aumentano il numero di utenti autenticati nel tuo gioco e semplificano lo sviluppo:
- Miglioramenti per gli utenti:
- Dopo aver selezionato un account predefinito, gli utenti vengono autenticati senza dover interagire con una richiesta.
- Gli utenti non devono più scaricare l'app Play Giochi per autenticarsi con i servizi per i giochi di Play o creare un nuovo account.
- Ora gli utenti possono gestire i propri account dei servizi per i giochi di Play per più giochi da un'unica pagina.
- Miglioramenti per gli sviluppatori:
- Il codice client non deve più gestire il flusso di autenticazione o disconnessione, in quanto l'accesso viene attivato automaticamente all'avvio del gioco e la gestione dell'account viene gestita nelle impostazioni del sistema operativo.
Nuova integrazione client
Questa sezione mostra come eseguire una nuova integrazione client con l'accesso v2 dei servizi per i giochi di Play.
Aggiungi la dipendenza
Aggiungi la dipendenza dell'SDK dei servizi per i giochi di Play al file build.gradle
a livello di root della tua app. Se utilizzi Gradle, puoi aggiungere o aggiornare la
dipendenza nel seguente modo:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
Definisci l'ID progetto
Per aggiungere l'ID progetto SDK dei servizi per i giochi di Play alla tua app, completa i seguenti passaggi:
Nel file
AndroidManifest.xml
dell'app, aggiungi i seguenti elementi e attributi<meta-data>
all'elemento<application>
:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
Definisci il riferimento alla risorsa String
@string/game_services_project_id
utilizzando l'ID progetto dei servizi per i giochi del tuo gioco come valore. L'ID progetto dei servizi per i giochi si trova sotto il nome del gioco nella pagina Configurazione di Google Play Console.Nel file
res/values/strings.xml
, aggiungi un riferimento alla risorsa stringa e imposta l'ID progetto come valore. In Google Play Console, puoi trovare l'ID progetto sotto il nome del gioco nella pagina Configurazione. Ad esempio:<!-- 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>
Inizializza l'SDK
Inizializza l'SDK Play Games nel callback onCreate(..)
della classe Application
.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Ottenere il risultato dell'autenticazione
Quando il gioco viene avviato, tenta sempre di autenticare l'utente. Per autenticare l'utente, devi verificare che l'autenticazione sia andata a buon fine e poi recuperare il suo ID giocatore.
Per verificare il tentativo di autenticazione, chiama il numero GamesSignInClient.isAuthenticated()
e
utilizza addOnCompleteListener
per recuperare i risultati. Ad esempio:
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 l'utente sceglie di non autenticarsi all'avvio del gioco, è
consigliabile continuare a mostrare un pulsante con l'icona di Play Giochi o
presentare all'utente una schermata di accesso con un pulsante con l'icona di Play Giochi
come una delle opzioni di autenticazione e tentare di autenticare nuovamente l'utente
chiamando GamesSignInClient.signIn()
se l'utente preme il pulsante.
Dopo aver verificato che l'utente è autenticato, puoi recuperare l'ID giocatore
per identificarlo. Ad esempio:
PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
// Get PlayerID with mTask.getResult().getPlayerId()
}
);