Für Android-Spiele anmelden

Damit Sie auf die Funktionen der Google Play-Spieldienste zugreifen können, muss in Ihrem Spiel das Konto des angemeldeten Spielers bereitgestellt werden. In dieser Dokumentation wird beschrieben, wie du eine nahtlose Anmeldung in deinem Spiel implementierst.

Das Play-Spieldienste v2 SDK enthält eine Reihe von Verbesserungen, die die Anzahl der Nutzer erhöhen, die sich in deinem Spiel anmelden, und die Entwicklung vereinfachen:

  • Verbesserungen für Nutzer:
    • Nach der Auswahl eines Standardkontos werden Nutzer angemeldet, ohne mit einer Eingabeaufforderung interagieren zu müssen.
    • Nutzer müssen die Play Spiele App nicht mehr herunterladen, um sich in den Play-Spieldiensten anzumelden oder ein neues Konto zu erstellen.
    • Nutzer können ihre Play-Spieldienste-Konten für mehrere Spiele jetzt von einer einzigen Seite aus verwalten.
  • Verbesserungen für Entwickler:
    • Der Clientcode muss den Anmelde- oder Abmeldevorgang nicht mehr verarbeiten, da die Anmeldung automatisch ausgelöst wird, wenn das Spiel beginnt, und die Kontoverwaltung in den Betriebssystemeinstellungen verwaltet wird.

Neue Clientintegration in „Play-Spieldienste – Anmeldung (Version 2)“

In diesem Abschnitt wird beschrieben, wie Sie eine neue Clientintegration in Version 2 von „Play-Spieldienste-Anmeldung“ vornehmen.

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

Füge die Play Game Services SDK-Abhängigkeit der build.gradle-Datei auf Stammebene deiner App 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:+"
}

Play-Spieldienste-Projekt-ID definieren

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 das folgende <meta-data>-Element und die folgenden Attribute in das <application>-Element ein:

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

    Definieren Sie die String-Ressourcenreferenz @string/game_services_project_id mit der Spieldienste-Projekt-ID Ihres Spiels als Wert. Die Projekt-ID Ihrer Spieldienste finden Sie in der Google Play Console auf der Seite Konfiguration unter dem Namen des Spiels.

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

Initialisieren Sie das Play Spiele SDK im onCreate(..)-Callback Ihrer Application-Klasse.

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

...

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

Anmeldeergebnis abrufen

Wenn Ihr Spiel gestartet wird, wird immer versucht, den Nutzer anzumelden. Um den Nutzer zu authentifizieren, musst du die erfolgreiche Anmeldung des Nutzers überprüfen und dann seine Spieler-ID abrufen.

Rufen Sie zur Bestätigung des Anmeldeversuchs 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, kannst du optional weiterhin eine Schaltfläche mit dem Play Spiele-Symbol anzeigen und versuchen, den Nutzer noch einmal anzumelden, indem er GamesSignInClient.signIn() aufruft, wenn er die Schaltfläche drückt.

Nachdem du überprüft hast, ob 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()
  }
);