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:
<ph type="x-smartling-placeholder">
- </ph>
- 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:
<ph type="x-smartling-placeholder">
- </ph>
- 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:
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.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()
}
);