Logowanie się w grach na Androida

Aby mieć dostęp do funkcji usług gier Google Play, gra musi obsługiwać: na koncie zalogowanego gracza. W tej dokumentacji dowiesz się, jak wdrożyć w swojej grze bezproblemowe logowanie.

Pakiet SDK usług gier Play w wersji 2 zawiera szereg ulepszeń, które zwiększają użytkowników zalogowanych w grze i ułatwiają programowanie:

  • Ulepszenia dla użytkowników:
    • Po wybraniu konta domyślnego użytkownicy są zalogowani bez konieczności wykonywania wchodzić w interakcję z promptem.
    • Użytkownicy nie muszą już pobierać aplikacji Gry Play, aby się logować usług gier Play lub utwórz nowe konto.
    • Użytkownicy mogą teraz zarządzać swoimi kontami usług gier Play w wielu grach z jednej strony.
  • Ulepszenia dla programistów:
    • Kod klienta nie musi już obsługiwać procesu logowania się lub wylogowywania. jest uruchamiana automatycznie po rozpoczęciu gry, a zarządzanie kontem jest obsługiwane w ustawieniach systemu operacyjnego.
.

Nowa integracja klienta

W tej sekcji dowiesz się, jak przeprowadzić integrację nowego klienta z usługami gier Play Logowanie w wersji 2.

Dodaj zależność

Dodaj zależność pakietu SDK usług gier Play na poziomie głównym aplikacji build.gradle. Jeśli używasz Gradle, możesz dodać lub zaktualizować w następujący sposób:

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

Zdefiniuj identyfikator projektu

Aby dodać identyfikator projektu pakietu SDK usług gier Play do aplikacji, wykonaj podane niżej czynności. następujące kroki:

  1. W pliku AndroidManifest.xml aplikacji dodaj te elementy (<meta-data>) i atrybuty element <application>:

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

    Określ odwołanie do zasobu ciągu @string/game_services_project_id używając identyfikatora projektu w usługach gier w Twoich grach jako wartości. Twoje usługi gier znajdziesz pod nazwą gry na stronie Konfiguracja. w Konsoli Google Play.

  2. W pliku res/values/strings.xml dodaj odwołanie do zasobu w postaci ciągu znaków i ustaw identyfikator projektu jako wartość. W Konsoli Google Play znajdziesz Project ID (Identyfikator projektu) pod nazwą gry na stronie Configuration (Konfiguracja). Na przykład:

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

Inicjowanie pakietu SDK

Zainicjuj pakiet SDK Gier Play w wywołaniu zwrotnym onCreate(..) komponentu Application zajęcia.

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

...

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

Sprawdź wynik logowania

Przy uruchamianiu gra będzie zawsze próbować zalogować użytkownika. Do użytkownik musi sprawdzić, czy udało się zalogować a potem uzyskać identyfikator gracza.

Aby zweryfikować próbę logowania, zadzwoń pod numer GamesSignInClient.isAuthenticated() i Użyj addOnCompleteListener, aby pobrać wyniki. Na przykład:

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

Jeśli użytkownik nie zaloguje się po uruchomieniu gry, możesz opcjonalnie dalej wyświetlać przycisk z ikoną Gier Play, a następnie spróbować zaloguj się ponownie, wywołując GamesSignInClient.signIn(), jeśli użytkownik naciśnie przycisk.

Po sprawdzeniu, czy użytkownik jest zalogowany, możesz pobrać identyfikator gracza na identyfikować użytkownika. Na przykład:

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