Android oyunlarında oturum açma

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 gerekmez.
    • Kullanıcılar artık birden fazla oyun için Play Oyun Hizmetleri hesaplarını tek bir sayfadan yönetebilir.
  • Geliştiriciler için iyileştirmeler:
    • Oyun başladığında oturum açma işlemi otomatik olarak tetiklendiği ve hesap yönetimi işletim sistemi ayarlarında yapıldığından, istemci kodunun artık oturum açma veya oturum kapatma akışını yönetmesi gerekmez.

Yeni istemci entegrasyonu

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

Bağımlılığı ekleme

Play Oyun Hizmetleri SDK'sı bağımlılığını uygulamanızın kök düzeyindeki build.gradle dosyasına ekleyin. Gradle kullanıyorsanız bağımlılık eklemek veya güncellemek için aşağıdaki adımları uygulayın:

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

Proje kimliğini tanımlayın

Play Oyun Hizmetleri SDK'sı proje kimliğini uygulamanıza eklemek için aşağıdaki adımları tamamlayı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 Games 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. Örnek:

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

Play Games SDK'sını, Application sınıfınızın onCreate(..) geri çağırma işlevinde başlatın.

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

...

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

Oturum açma sonucunu alma

Oyununuz her başlatıldığında kullanıcının oturumunu açmaya çalışır. Kullanıcının kimliğini doğrulamak için kullanıcının başarıyla oturum açtığını doğrulamanız ve ardından oyuncu kimliğini almanız gerekir.

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

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çmayı tercih etmezse isteğe bağlı olarak Play Games simgesini içeren bir düğme göstermeye devam edebilir ve kullanıcı düğmeye basarsa GamesSignInClient.signIn() işlevini çağırarak kullanıcının tekrar oturum açmasını deneyebilirsiniz.

Kullanıcının oturum açtığını doğruladıktan sonra kullanıcıyı tanımlamak için Oyuncu Kimliği'ni alabilirsiniz. Örnek:

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