Android Oyunları için Oturum Açın

Google Play Games Hizmetleri işlevlerine erişmek için oyununuzun, oturum açmış oyuncunun hesabını sağlaması gerekir. Bu dokümanda, oyununuzda sorunsuz bir oturum açma deneyiminin nasıl uygulanacağı açıklanmaktadır.

Play Oyun Hizmetleri v2 SDK'sı, oyununuzda oturum açan kullanıcı sayısını artıran ve geliştirmeyi kolaylaştıran çeşitli iyileştirmeler sunar:

  • Kullanıcılar için iyileştirmeler:
    • Varsayılan hesap seçildikten sonra kullanıcılar istemle etkileşime geçmek zorunda kalmadan oturum açar.
    • Kullanıcıların Play Oyun Hizmetleri ile oturum açmak veya yeni hesap oluşturmak için Play Games uygulamasını indirmesi artık gerekmiyor.
    • Kullanıcılar artık birden fazla oyun için Play Games Hizmetleri hesaplarını yönetebilir tek bir sayfadan alır.
  • Geliştiriciler için iyileştirmeler:
    • İstemci kodunun artık giriş yapma veya oturum kapatma akışını işlemesi gerekmez oyun başladığında otomatik olarak tetiklenir ve hesap yönetimi iş sistemi ayarlarında işlendi.

Play Games Hizmetleri Oturum Açma v2 ile yeni istemci entegrasyonu

Bu bölümde, Play Games Hizmetleri Oturum Açma 2. sürümü ile yeni bir istemci entegrasyonunun nasıl yapılacağı gösterilmektedir.

Play Games Hizmetleri SDK'sı bağımlılığını ekleyin

Play Games Hizmetleri SDK'sı bağımlılığını uygulamanızın kök düzeyine ekleme build.gradle dosyası oluşturun. Gradle kullanıyorsanız bağımlılık ekleyebilir veya mevcut şu şekilde:

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

Play Games Hizmetleri proje kimliğini tanımlayın

Play Games Hizmetleri SDK'sı proje kimliğini uygulamanıza eklemek için şu adımları uygulayın:

  1. Uygulamanızın AndroidManifest.xml dosyasında, <application> öğesine aşağıdaki <meta-data> öğesini ve özelliklerini ekleyin:

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

    Dize kaynak referansı @string/game_services_project_idiçin değer olarak oyunlarınızın Play Oyun Hizmetleri proje kimliğini kullanın. Games Hizmetleri proje kimliğinizi Google Play Console'daki Yapılandırma sayfasında oyun adınızın altında bulabilirsiniz.

  2. res/values/strings.xml dosyanıza bir dize kaynağı referansı ekleyin ve proje kimliğinizi değer olarak ayarlayın. Google Play Console'da proje kimliğinizi Yapılandırma sayfasındaki oyun adınızın altında bulabilirsiniz. Örneğin:

    <!-- 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'yı başlatma

Application cihazınızın onCreate(..) geri çağırmasında Play Games SDK'sını başlatın sınıfını kullanır.

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

...

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

Oturum açma sonucunu alma

Oyununuz başlatıldığında her zaman kullanıcının oturumunu açmaya çalışır. Alıcı: kullanıcının kimliğini doğrulamak için kullanıcının başarılı bir şekilde oturum açtığını, kullanıcının Oyuncu Kimliğini öğrenmelidir.

Oturum açma girişimini doğrulamak için GamesSignInClient.isAuthenticated() işlevini çağırın ve sonuçları almak için addOnCompleteListener işlevini kullanın. Örneğin:

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

Kullanıcı oyun başlatıldığında oturum açmamayı seçerse isteğe bağlı olarak Play Games simgesiyle bir düğme göstermeye devam edin ve Kullanıcı oturum açarsa GamesSignInClient.signIn() düğmeye basar.

Kullanıcının oturum açtığını doğruladıktan sonra, oyuncu kimliğini şu amaçlarla alabilirsiniz: tanımlamanız gerekir. Örneğin:

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