Untuk mengakses fungsi Layanan game Google Play, game Anda harus menyediakan akun pemain yang diautentikasi. Dokumentasi ini menjelaskan cara menerapkan pengalaman autentikasi yang lancar di game Anda.
Play Games Services v2 SDK menghadirkan sejumlah peningkatan yang meningkatkan jumlah pengguna yang diautentikasi ke game Anda, dan mempermudah pengembangan:
- Peningkatan untuk pengguna:
- Setelah memilih akun default, pengguna akan diautentikasi tanpa perlu berinteraksi dengan perintah.
- Pengguna tidak perlu lagi mendownload Aplikasi Play Game untuk melakukan autentikasi dengan Layanan game Play atau membuat akun baru.
- Pengguna kini dapat mengelola akun Layanan game Play untuk beberapa game dari satu halaman.
- Peningkatan untuk developer:
- Kode klien tidak lagi diperlukan untuk menangani alur autentikasi atau logout, karena proses login otomatis dipicu saat game dimulai, dan pengelolaan akun ditangani di setelan OS.
Integrasi klien baru
Bagian ini menunjukkan cara melakukan integrasi klien baru dengan Login Layanan game Play v2.
Menambahkan dependensi
Tambahkan dependensi SDK Layanan game Play ke file build.gradle level root
aplikasi Anda. Jika menggunakan Gradle, Anda dapat menambahkan atau mengupdate
dependensi sebagai berikut:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
Menentukan project ID
Untuk menambahkan project ID SDK Layanan game Play ke aplikasi Anda, selesaikan langkah-langkah berikut:
Di file
AndroidManifest.xmlaplikasi Anda, tambahkan<meta-data>elemen dan atribut berikut ke elemen<application>:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>Tentukan referensi resource String
@string/game_services_project_idmenggunakan project ID layanan Game milik game Anda sebagai nilai. Project ID layanan Game Anda dapat ditemukan pada bagian nama game di halaman Konfigurasi di Konsol Google Play.Dalam file
res/values/strings.xmlAnda, tambahkan referensi resource string dan tetapkan project ID sebagai nilai. Di Konsol Google Play, Anda dapat menemukan project ID dengan nama game Anda di halaman Konfigurasi. Contoh:<!-- 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>
Menginisialisasi SDK
Lakukan inisialisasi SDK Play Game di callback onCreate(..) dari class Application Anda.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
Mendapatkan hasil autentikasi
Saat diluncurkan, game akan selalu mencoba mengautentikasi pengguna. Untuk mengautentikasi pengguna, Anda harus memverifikasi bahwa pengguna berhasil diautentikasi, lalu mendapatkan ID Pemainnya.
Untuk memverifikasi upaya autentikasi, panggil GamesSignInClient.isAuthenticated() dan gunakan addOnCompleteListener untuk mengambil hasilnya. Contoh:
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Show a sign-in button to ask players to authenticate. Clicking it should
// call GamesSignInClient.signIn().
}
});
Mencegah pembuatan profil yang dimulai otomatis
Anda dapat menonaktifkan perintah pembuatan profil yang dimulai otomatis melalui file manifes. Hal ini memungkinkan pengguna tanpa profil Layanan game Play untuk terus memuat game tanpa diminta membuat profil Layanan game Play. Untuk mengetahui informasi selengkapnya, lihat Opsi pembuatan profil.
Untuk menggunakan fitur ini, pastikan kondisi berikut terpenuhi:
- Tidak ada profil Layanan game Play di Akun Google mana pun yang login di perangkat.
- Game Anda terintegrasi dengan Play Games Services SDK
com.google.android.gms:play-services-games-v2:21.0.0atau yang lebih baru.
Untuk mencegah perintah pembuatan profil yang dimulai otomatis, selesaikan langkah-langkah berikut:
Di file
AndroidManifest.xml, tambahkan tagcom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONdi elemen<meta-data>dan atribut ke elemen<application>:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>Menyetel tanda ini ke benar akan memberi tahu Layanan game Play bahwa game Anda akan menangani proses pembuatan profil. Oleh karena itu, Layanan game Play tidak akan otomatis menampilkan antarmuka pengguna pembuatan profil untuk pengguna di perangkat yang tidak memiliki profil Layanan game Play.
Saat Anda memanggil Play Games Services API, kode status
GamesClientStatusCodes.SIGN_IN_REQUIREDmenunjukkan bahwa panggilan gagal karena pengguna tidak dapat diautentikasi secara otomatis karena tidak adanya profil Layanan game Play.Hal ini memungkinkan pengguna tanpa profil Layanan game Play untuk melanjutkan metode autentikasi yang diterapkan tanpa langsung diminta membuat profil Layanan game Play. Pembuatan profil dapat dimulai dengan memanggil
GamesSignInService.signin().import com.google.android.gms.games.PlayGames; ... // Get the achievements client using Play Games services. AchievementsClient achievementsClient = PlayGames.getAchievementsClient(getActivity()); achievementsClient.getAchievementsIntent() .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { int statusCode = ((ApiException) exception).getStatusCode(); if (statusCode == GamesClientStatusCodes.SIGN_IN_REQUIRED) { // SIGN_IN_REQUIRED: The user needs to sign in with Play Games Services. // Call GamesSignInService.signin() to prompt for // authentication at a suitable time which will trigger the // profile creation UI. // (e.g., after a tutorial). Use GamesSignInService.isAuthenticated() to check auth status. } } });
Setelah menambahkan tag penonaktifan, gunakan jendela
logcatuntuk memverifikasi penambahan. Outputlogcatberisi pesan yang mirip dengan berikut ini: "Game opted out of automatic profile creation prompt (using manifest)".