Accesso ai giochi Android

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

L'SDK dei servizi per i giochi di Play v2 presenta una serie di miglioramenti che aumentano le numero di utenti che hanno eseguito l'accesso al tuo gioco e semplifica lo sviluppo:

  • Miglioramenti per gli utenti:
    • Dopo aver selezionato un account predefinito, gli utenti possono accedere senza dover interagire con un prompt.
    • Gli utenti non devono più scaricare l'app Play Giochi per accedere Servizi per i giochi di Play o crea un nuovo account.
    • Ora gli utenti possono gestire i propri account dei servizi per i giochi di Play per più giochi provenienti da una singola pagina.
  • Miglioramenti per gli sviluppatori:
    • Il codice client non deve più gestire il flusso di accesso o di uscita, poiché l'accesso viene attivato automaticamente all'avvio del gioco e la gestione dell'account viene gestita nelle impostazioni del sistema operativo.

Nuova integrazione del client con la versione 2 di Accesso offerto dai servizi per i giochi di Play

Questa sezione mostra come eseguire una nuova integrazione del client con la versione 2 di Accesso ai servizi per i giochi di Play.

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

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

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

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

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

  1. Nel file AndroidManifest.xml dell'app, aggiungi quanto segue <meta-data> e attributi 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 dei tuoi giochi come valore. I tuoi servizi per i giochi l'ID progetto è disponibile sotto il nome del gioco nella pagina Configurazione della 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 il tuo 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 tua 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, tenterà sempre di eseguire l'accesso dell'utente. A autenticare l'utente, è necessario verificare che abbia eseguito l'accesso, e recupera l'ID giocatore.

Per verificare il tentativo di accesso, chiama il numero GamesSignInClient.isAuthenticated() e usa 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 al momento dell'avvio del gioco, puoi scegliere di continuare a mostrare un pulsante con l'icona di Play Giochi e tentare di farlo accedere di nuovo 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()
  }
);