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 Ihrem Spiel implementieren.
Das SDK für die Play-Spieldienste v2 bietet eine Reihe von Verbesserungen, die die Anzahl der Nutzer erhöhen, die in Ihrem Spiel angemeldet sind, und die Entwicklung erleichtern:
- Verbesserungen für Nutzer:
- Nachdem ein Standardkonto ausgewählt wurde, werden Nutzer angemeldet, ohne mit einem Prompt interagieren zu müssen.
- 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 über eine einzige Seite verwalten.
- 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 „Play-Spieldienste – Anmeldung (Version 2)“
In diesem Abschnitt wird gezeigt, wie Sie eine neue Clientintegration mit der Anmeldung in Play-Spieldiensten v2 vornehmen.
Abhängigkeit vom Play-Spieldienste-SDK hinzufügen
Fügen Sie der Datei build.gradle
Ihrer App auf Stammebene die Abhängigkeit vom Play Games 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:+"
}
Play-Spieldienste-Projekt-ID definieren
So fügen Sie Ihrer App die Projekt-ID des Play Games Services SDK hinzu:
Fügen Sie in der Datei
AndroidManifest.xml
Ihrer App dem Element<application>
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 die Stringressourcenreferenz
@string/game_services_project_id
mit der Projekt-ID der Play-Spieldienste Ihres Spiels als Wert. Sie finden die Projekt-ID Ihrer Spieledienste in der Google Play Console auf der Seite Konfiguration unter dem Namen Ihres Spiels.Fügen Sie in der
res/values/strings.xml
-Datei eine Stringressourcenreferenz 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 Ihres 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 Games 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
Beim Starten Ihres Spiels wird immer versucht, den Nutzer anzumelden. Um den Nutzer zu authentifizieren, musst du prüfen, ob er sich erfolgreich angemeldet hat, und dann seine Player-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()
}
);