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.
Layanan Play Games 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 Games untuk mengautentikasi dengan Layanan Play Games 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 perlu menangani alur autentikasi atau logout, karena 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 elemen dan atribut<meta-data>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 dipicu otomatis
Anda dapat menonaktifkan petunjuk pembuatan profil yang dipicu otomatis melalui file manifes. Hal ini memungkinkan pengguna tanpa profil Layanan Play Games terus memuat game tanpa diminta untuk membuat profil Layanan Play Games. Untuk mengetahui informasi selengkapnya, lihat Opsi pembuatan profil.
Untuk menggunakan fitur ini, pastikan kondisi berikut terpenuhi:
- Tidak ada profil Layanan Play Game di salah satu Akun Google yang login di perangkat.
- Game Anda terintegrasi dengan SDK Layanan Play Games
com.google.android.gms:play-services-games-v2:21.0.0atau yang lebih tinggi.
Untuk mencegah munculnya perintah pembuatan profil yang dipicu secara otomatis, selesaikan langkah-langkah berikut:
Dalam 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 (true) akan memberi tahu Layanan Play Games bahwa game Anda akan menangani proses pembuatan profil. Akibatnya, 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 API Layanan Play Games, kode status
GamesClientStatusCodes.SIGN_IN_REQUIREDmenunjukkan bahwa panggilan gagal karena pengguna tidak dapat diautentikasi secara otomatis karena tidak adanya profil Layanan Play Games.Hal ini memungkinkan pengguna tanpa profil Layanan Play Games untuk melanjutkan metode autentikasi yang diterapkan tanpa langsung diminta untuk membuat profil Layanan Play Games. 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 peniadaan, gunakan jendela
logcatuntuk memverifikasi penambahan. Outputlogcatberisi pesan yang mirip dengan berikut: "Game opted out of automatic profile creation prompt (using manifest)".