Für Android-Spiele anmelden

Für den Zugriff auf die Funktionen der Google Play-Spieldienste muss Ihr Spiel das Konto des angemeldeten Spielers bereitstellen. In dieser Dokumentation wird beschrieben, wie du eine nahtlose Anmeldung in deinem Spiel implementierst.

Das Play-Spieldienste-SDK der Version 2 bietet eine Reihe von Verbesserungen, durch die die Anzahl der in deinem Spiel angemeldeten Nutzer erhöht und die Entwicklung vereinfacht wird:

  • Verbesserungen für Nutzer:
    • Nachdem ein Standardkonto ausgewählt wurde, sind Nutzer angemeldet, ohne auf eine Aufforderung reagieren zu müssen.
    • Nutzer müssen nicht mehr die Play Spiele App herunterladen, um sich über die Play-Spieldienste anzumelden oder ein neues Konto zu erstellen.
    • Nutzer können ihre Play-Spieldienste-Konten jetzt für mehrere Spiele auf einer einzigen Seite verwalten.
  • Verbesserungen für Entwickler:
    • Der Clientcode muss den An- oder Abmeldevorgang nicht mehr verarbeiten, da die Anmeldung automatisch ausgelöst wird, wenn das Spiel beginnt, und die Kontoverwaltung in den Einstellungen des Betriebssystems erfolgt.

Neue Clientintegration mit Play-Spieldienste-Anmeldung v2

In diesem Abschnitt wird beschrieben, wie du eine neue Clientintegration mit Play-Spieldienste-Anmeldung Version 2 vornimmst.

Play-Spieldienste-SDK-Abhängigkeit hinzufügen

Fügen Sie der Datei build.gradle auf Stammebene Ihrer App die Abhängigkeit vom Play Game Services SDK hinzu. Wenn Sie Gradle verwenden, können Sie die Abhängigkeit so hinzufügen oder aktualisieren:

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

ID des Play-Spieldienste-Projekts festlegen

Führe die folgenden Schritte aus, um deiner App die Projekt-ID des Play Games Services SDK hinzuzufügen:

  1. Fügen Sie in der Datei AndroidManifest.xml Ihrer App dem <application>-Element das folgende <meta-data>-Element und die folgenden Attribute hinzu:

    <manifest>
      <application>
        <meta-data android:name="com.google.android.gms.games.APP_ID"
                   android:value="@string/game_services_project_id"/>
      </application>
    </manifest>
    

    Definieren Sie den String-Ressourcenverweis @string/game_services_project_id und verwenden Sie dabei die Projekt-ID der Spieldienste Ihres Spiels als Wert. Die ID Ihres Spieldienste-Projekts finden Sie in der Google Play Console auf der Seite Konfiguration unter Ihrem Spielnamen.

  2. Fügen Sie in der Datei res/values/strings.xml eine String-Ressourcenreferenz hinzu und legen Sie Ihre Projekt-ID als Wert fest. In der Google Play Console finden Sie Ihre Projekt-ID auf der Seite Konfiguration unter dem Namen des Spiels. Beispiel:

    <!-- 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>
    

SDK initialisieren

Initialisiere das Play Spiele SDK im onCreate(..)-Callback deiner Application-Klasse.

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

...

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

Anmeldeergebnis abrufen

Wenn dein Spiel gestartet wird, wird immer versucht, den Nutzer anzumelden. Um den Nutzer zu authentifizieren, musst du prüfen, ob er sich erfolgreich angemeldet hat, und dann seine Spieler-ID abrufen.

Um den Anmeldeversuch zu bestätigen, rufen Sie GamesSignInClient.isAuthenticated() auf und verwenden Sie addOnCompleteListener, um die Ergebnisse abzurufen. Beispiel:

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

Wenn sich der Nutzer beim Start des Spiels nicht anmelden möchte, kann optional weiterhin eine Schaltfläche mit dem Play Spiele-Symbol angezeigt werden. Wenn der Nutzer auf die Schaltfläche drückt, kann er dann noch einmal versuchen, sich durch Aufrufen von GamesSignInClient.signIn() anzumelden.

Nachdem du bestätigt hast, dass der Nutzer angemeldet ist, kannst du die Spieler-ID abrufen, um den Nutzer zu identifizieren. Beispiel:

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