Accesso per i giochi Android

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

L'SDK Play Games Services 2.0 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 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 Play Services per più giochi 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.

Integrazione di un nuovo cliente

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

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:+"
}

Definisci l'ID progetto

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

  1. Nel file AndroidManifest.xml dell'app, aggiungi l'elemento e gli 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 come valore l'ID progetto Play Services dei tuoi giochi. L'ID progetto dei servizi per i giochi è disponibile 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 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

Quando il gioco viene lanciato, tenterà sempre di far accedere l'utente. Per autenticare l'utente, devi verificare che abbia eseguito correttamente l'accesso e 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 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()
  }
);