Anmeldung für Android-Spiele

Damit du auf die Funktionen der Google Play-Spieldienste zugreifen kannst, muss dein Spiel die Konto angemeldeter Spieler. In dieser Dokumentation wird beschrieben, wie Sie eine nahtlose Anmeldung in deinem Spiel zu implementieren.

Das Version 2 des Play-Spieldienste-SDK enthält eine Reihe von Verbesserungen, die die Anzahl der Nutzer, die sich in deinem Spiel angemeldet haben, und die Entwicklung zu erleichtern:

  • Verbesserungen für Nutzer:
    • Nachdem sie ein Standardkonto ausgewählt haben, müssen sie sich nicht mit einem Prompt interagieren.
    • Nutzer müssen die Play Spiele App nicht mehr herunterladen, um sich anzumelden Play-Spieldienste oder erstelle ein neues Konto.
    • Nutzer können jetzt ihre Play-Spieldienste-Konten für mehrere Spiele verwalten über eine einzige Seite.
  • Verbesserungen für Entwickler:
    • Der Anmelde- oder Abmeldevorgang muss nicht mehr über den Clientcode als Anmeldung verarbeitet werden. wird automatisch ausgelöst, wenn das Spiel beginnt und die Kontoverwaltung in den Einstellungen des Betriebssystems.

Neue Clientintegration

In diesem Abschnitt wird beschrieben, wie Sie eine neue Clientintegration in die Play-Spieldienste vornehmen. Anmelden Version 2.

Abhängigkeit hinzufügen

Fügen Sie der Root-Ebene Ihrer App die Abhängigkeit des Play Game Services SDK hinzu. build.gradle-Datei. Wenn Sie Gradle verwenden, können Sie den der Abhängigkeit wie folgt:

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

Projekt-ID definieren

Um deiner App die Projekt-ID des Play Games Services SDK hinzuzufügen, fülle die folgenden Schritten:

  1. Füge der Datei AndroidManifest.xml deiner App Folgendes hinzu: <meta-data> -Element und Attribute für das <application>-Element hinzufügen:

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

    String-Ressourcenreferenz @string/game_services_project_id definieren Verwenden Sie dabei die Spieldienste-Projekt-ID Ihres Spiels als Wert. Meine Spieldienste Die Projekt-ID finden Sie unter dem Namen Ihres Spiels auf der Seite Konfiguration in der Google Play Console.

  2. Fügen Sie in der Datei res/values/strings.xml einen String-Ressourcenverweis hinzu. und legen Sie Ihre Projekt-ID als Wert fest. In der Google Play Console finden Sie Projekt-ID unter dem Namen des Spiels auf der Seite Konfiguration ein. 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

Play Spiele SDK im onCreate(..)-Callback deines Application initialisieren .

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. Bis Nutzer authentifizieren, müssen Sie bestätigen, dass sich der Nutzer erfolgreich angemeldet hat, und dann seine Spieler-ID abrufen.

Um den Anmeldeversuch zu bestätigen, rufen Sie GamesSignInClient.isAuthenticated() an 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 melden Sie den Nutzer noch einmal an, indem Sie GamesSignInClient.signIn() aufrufen, falls der Nutzer die Taste drückt.

Nachdem du überprüft hast, ob der Nutzer angemeldet ist, kannst du die Spieler-ID hier abrufen: um die Nutzenden zu identifizieren. Beispiel:

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