Google Play की गेम सेवाओं की सुविधाओं को ऐक्सेस करने के लिए, आपके गेम को पुष्टि किए गए खिलाड़ी का खाता उपलब्ध कराना होगा. इस दस्तावेज़ में, आपके गेम में पुष्टि करने की प्रोसेस को बिना किसी रुकावट के लागू करने का तरीका बताया गया है.
Play की गेम सेवाओं के v2 एसडीके टूल में कई सुधार किए गए हैं. इससे आपके गेम में पुष्टि किए गए उपयोगकर्ताओं की संख्या बढ़ जाती है और गेम को डेवलप करना आसान हो जाता है:
- उपयोगकर्ताओं के लिए किए गए सुधार:
- डिफ़ॉल्ट खाता चुनने के बाद, उपयोगकर्ताओं की पुष्टि हो जाती है. इसके लिए, उन्हें किसी प्रॉम्प्ट के साथ इंटरैक्ट करने की ज़रूरत नहीं होती.
- Play Games की सेवाओं से पुष्टि करने या नया खाता बनाने के लिए, अब उपयोगकर्ताओं को Play Games ऐप्लिकेशन डाउनलोड करने की ज़रूरत नहीं है.
- उपयोगकर्ता अब एक ही पेज से, कई गेम के लिए Play Games की सेवाओं के अपने खाते मैनेज कर सकते हैं.
- डेवलपर के लिए किए गए सुधार:
- अब क्लाइंट कोड को पुष्टि करने या साइन-आउट करने की प्रोसेस को मैनेज करने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि गेम शुरू होने पर लॉगिन अपने-आप ट्रिगर हो जाता है. साथ ही, खाते का मैनेजमेंट ओएस की सेटिंग में किया जाता है.
नया क्लाइंट इंटिग्रेशन
इस सेक्शन में, Play की गेम सेवाओं में साइन इन करने की सुविधा के v2 के साथ नया क्लाइंट इंटिग्रेशन करने का तरीका बताया गया है.
डिपेंडेंसी जोड़ना
अपने ऐप्लिकेशन की रूट-लेवल वाली build.gradle फ़ाइल में, Play Games की सेवाओं के एसडीके टूल की डिपेंडेंसी जोड़ें. अगर Gradle का इस्तेमाल किया जा रहा है, तो डिपेंडेंसी को इस तरह जोड़ा या अपडेट किया जा सकता है:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
प्रोजेक्ट आईडी तय करना
अपने ऐप्लिकेशन में Play की गेम सेवाओं के एसडीके टूल का प्रोजेक्ट आईडी जोड़ने के लिए, यह तरीका अपनाएं:
अपने ऐप्लिकेशन की
AndroidManifest.xmlफ़ाइल में,<application>एलिमेंट में यह<meta-data>एलिमेंट और एट्रिब्यूट जोड़ें:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>अपने गेम के गेम सेवाएं प्रोजेक्ट आईडी को वैल्यू के तौर पर इस्तेमाल करके, स्ट्रिंग रिसॉर्स रेफ़रंस
@string/game_services_project_idतय करें. Google Play Console पर, कॉन्फ़िगरेशन पेज में अपने गेम के नाम के नीचे, Games services प्रोजेक्ट आईडी देखा जा सकता है.अपनी
res/values/strings.xmlफ़ाइल में, एक स्ट्रिंग रिसॉर्स रेफ़रंस जोड़ें और अपने प्रोजेक्ट आईडी को वैल्यू के तौर पर सेट करें. Google Play Console में, कॉन्फ़िगरेशन पेज पर अपने गेम के नाम के नीचे, प्रोजेक्ट आईडी देखा जा सकता है. उदाहरण के लिए:<!-- 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>
एसडीके टूल सेटअप करना
अपनी Application क्लास के onCreate(..) कॉलबैक में, Play Games SDK सेटअप करें.
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
पुष्टि का नतीजा पाना
आपका गेम लॉन्च होने पर, वह हमेशा उपयोगकर्ता की पुष्टि करने की कोशिश करेगा. उपयोगकर्ता की पुष्टि करने के लिए, आपको यह पुष्टि करनी होगी कि उपयोगकर्ता की पुष्टि हो गई है. इसके बाद, उसका प्लेयर आईडी पाएं.
पुष्टि करने की कोशिश की पुष्टि करने के लिए, GamesSignInClient.isAuthenticated() को कॉल करें और नतीजे पाने के लिए, addOnCompleteListener का इस्तेमाल करें. उदाहरण के लिए:
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().
}
});
प्रोफ़ाइल अपने-आप बनने से रोकना
मेनिफ़ेस्ट फ़ाइल की मदद से, प्रोफ़ाइल अपने-आप बनने के प्रॉम्प्ट को बंद किया जा सकता है. इससे, Play की गेम सेवाओं की प्रोफ़ाइल के बिना भी उपयोगकर्ता गेम लोड कर सकते हैं. इसके लिए, उन्हें Play की गेम सेवाओं की प्रोफ़ाइल बनाने के लिए कहा नहीं जाएगा. ज़्यादा जानकारी के लिए, प्रोफ़ाइल बनाने के विकल्प लेख पढ़ें.
इस सुविधा का इस्तेमाल करने के लिए, पक्का करें कि ये शर्तें पूरी हों:
- डिवाइस पर साइन इन किए गए किसी भी Google खाते पर, Play की गेम सेवाएं प्रोफ़ाइल मौजूद न हो.
- आपका गेम, Play की गेम सेवाओं के एसडीके टूल
com.google.android.gms:play-services-games-v2:21.0.0या इससे नए वर्शन के साथ इंटिग्रेट किया गया हो.
प्रोफ़ाइल अपने-आप बनने के प्रॉम्प्ट को रोकने के लिए, यह तरीका अपनाएं:
AndroidManifest.xmlफ़ाइल में,com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONटैग को<meta-data>एलिमेंट में और एट्रिब्यूट को<application>एलिमेंट में जोड़ें:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>इस फ़्लैग को 'सही' पर सेट करने से, Play Games की सेवाओं को यह जानकारी मिलती है कि आपका गेम, प्रोफ़ाइल बनाने की प्रोसेस को मैनेज करेगा. इसलिए, Play की गेम सेवाएं, डिवाइस पर मौजूद उन उपयोगकर्ताओं के लिए प्रोफ़ाइल बनाने का यूज़र इंटरफ़ेस अपने-आप नहीं दिखाएंगी जिनकी Play की गेम सेवाओं की कोई प्रोफ़ाइल मौजूद नहीं है.
Play की गेम सेवाओं के किसी भी एपीआई को कॉल करने पर,
GamesClientStatusCodes.SIGN_IN_REQUIREDस्टेटस कोड से पता चलता है कि कॉल इसलिए नहीं हो पाया, क्योंकि Play की गेम सेवाओं की प्रोफ़ाइल न होने की वजह से, उपयोगकर्ता की पुष्टि अपने-आप नहीं हो पाई.इससे, Play Games की सेवाओं की प्रोफ़ाइल के बिना भी उपयोगकर्ता, पुष्टि करने के आपके लागू किए गए तरीकों का इस्तेमाल कर सकते हैं. इसके लिए, उन्हें Play Games की सेवाओं की प्रोफ़ाइल बनाने के लिए तुरंत नहीं कहा जाएगा. प्रोफ़ाइल बनाने की प्रोसेस,
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. } } });
सप्रेशन टैग जोड़ने के बाद, यह पुष्टि करने के लिए
logcatविंडो का इस्तेमाल करें कि टैग जोड़ा गया है या नहीं.logcatके आउटपुट में, इस तरह का मैसेज दिखता है: "Game opted out of automatic profile creation prompt (using manifest)".