Accesso ai giochi Android

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

L'SDK dei servizi per i giochi di Play v2 offre 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 eseguono l'accesso senza dover interagire con una richiesta.
    • Gli utenti non devono più scaricare l'app Play Giochi per accedere ai 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 uscita, poiché l'accesso viene attivato automaticamente all'inizio del gioco e la gestione dell'account viene gestita nelle impostazioni del sistema operativo.

Integrazione di un nuovo client con l'accesso ai servizi per i giochi di Play v2

Questa sezione mostra come eseguire l'integrazione di un nuovo client con l'accesso ai servizi per i giochi di Play v2.

Aggiungi la dipendenza dell'SDK dei servizi per i giochi di Play

Aggiungi la dipendenza dell'SDK dei servizi per i giochi di Play al file build.gradle di livello principale dell'app. Se utilizzi Gradle, puoi aggiungere o aggiornare la dipendenza come segue:

dependencies {
 implementation "com.google.android.gms:play-services-games-v2:+"
}

Definisci l'ID progetto dei servizi per i giochi di Play

Per aggiungere alla tua app l'ID progetto dell'SDK dei servizi per i giochi di Play, svolgi i seguenti passaggi:

  1. Nel file AndroidManifest.xml dell'app, aggiungi il seguente elemento 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 della risorsa Stringa @string/game_services_project_id utilizzando l'ID progetto dei servizi di gioco dei tuoi giochi come valore. Puoi trovare l'ID progetto dei servizi per i giochi sotto il nome del gioco nella pagina Configurazione di Google Play Console.

  2. Nel file res/values/strings.xml, aggiungi un riferimento di 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 Giochi nel callback onCreate(..) della tua classe Application.

import com.google.android.gms.games.PlayGamesSdk;

...

@Override
public void onCreate(){
  super.onCreate();
  PlayGamesSdk.initialize(this);
}

Visualizza il risultato dell'accesso

All'avvio del gioco, verrà sempre effettuato un tentativo di accesso dell'utente. Per autenticare l'utente, devi verificare che l'utente abbia eseguito l'accesso, quindi ottenere 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 eseguire l'accesso al momento dell'avvio del gioco, puoi scegliere di continuare a mostrare un pulsante con l'icona di Play Giochi e provare ad accedere di nuovo all'utente chiamando il numero GamesSignInClient.signIn() se preme il pulsante.

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

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