Accesso per i giochi Android

Per accedere alle funzionalità dei servizi per i giochi di Google Play, il tuo gioco deve fornire l'account del giocatore che ha eseguito l'accesso. Questa documentazione descrive come implementare un'esperienza di accesso fluida nel tuo gioco.

L'SDK Play Games Services v2 introduce una serie di miglioramenti che aumentano il numero di utenti che hanno eseguito l'accesso al tuo gioco e semplificano lo sviluppo:

  • Miglioramenti per gli utenti:
    • Dopo aver selezionato un account predefinito, gli utenti accedono senza dover interagire con una richiesta.
    • Gli utenti non devono più scaricare l'app Play Giochi per accedere 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 accesso o disconnessione, poiché 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 Play Games Services Sign In v2.

Aggiungi la dipendenza

Aggiungi la dipendenza dell'SDK Play Game Services al file build.gradle della tua app al livello radice. 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 dell'SDK Play Game Services alla tua app, completa i seguenti passaggi:

  1. Nel file AndroidManifest.xml dell'app, aggiungi l'elemento e gli attributi <meta-data> seguenti 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 stringa @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.

  2. 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);
}

Ottieni il risultato dell'accesso

All'avvio del gioco, viene sempre eseguito un tentativo di accesso dell'utente. Per autenticare l'utente, devi verificare che abbia eseguito l'accesso e poi recuperare il suo ID giocatore.

Per verificare il tentativo di accesso, chiama 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 {
    // Disable your integration with Play Games Services or show a
    // login button to ask  players to sign-in. Clicking it should
    // call GamesSignInClient.signIn().
  }
});

Se l'utente sceglie di non accedere all'avvio del gioco, puoi facoltativamente scegliere di continuare a mostrare un pulsante con l'icona di Play Giochi e tentare di far accedere di nuovo l'utente chiamando GamesSignInClient.signIn() se l'utente preme il pulsante.

Dopo aver verificato che l'utente ha eseguito l'accesso, puoi recuperare l'ID giocatore per identificarlo. Ad esempio:

PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
    // Get PlayerID with mTask.getResult().getPlayerId()
  }
);