Google Play Games Services की सुविधाओं को ऐक्सेस करने के लिए, आपके गेम को पुष्टि किए गए खिलाड़ी का खाता देना होगा. इस दस्तावेज़ में, आपके गेम में बिना किसी रुकावट के पुष्टि करने की सुविधा लागू करने का तरीका बताया गया है.
Play Games की सेवाओं के v2 एसडीके टूल में कई सुधार किए गए हैं. इससे आपके गेम में पुष्टि किए गए उपयोगकर्ताओं की संख्या बढ़ती है और गेम को डेवलप करना आसान हो जाता है:
- उपयोगकर्ताओं के लिए सुधार:
- डिफ़ॉल्ट खाता चुनने के बाद, उपयोगकर्ताओं की पुष्टि हो जाती है. इसके लिए, उन्हें किसी प्रॉम्प्ट से इंटरैक्ट करने की ज़रूरत नहीं होती.
- लोगों को Play की गेम सेवाओं से पुष्टि करने या नया खाता बनाने के लिए, अब Play Games ऐप्लिकेशन डाउनलोड करने की ज़रूरत नहीं है.
- अब लोग एक ही पेज से, कई गेम के लिए Play की गेम सेवाओं वाले अपने खाते मैनेज कर सकते हैं.
- डेवलपर के लिए किए गए सुधार:
- क्लाइंट कोड को अब पुष्टि करने या साइन-आउट करने की प्रोसेस को मैनेज करने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि गेम शुरू होने पर लॉगिन अपने-आप ट्रिगर हो जाता है. साथ ही, खाते को मैनेज करने की प्रोसेस, ओएस की सेटिंग में मैनेज की जाती है.
नए क्लाइंट का इंटिग्रेशन
इस सेक्शन में, Play की गेम सेवाओं के साइन इन करने की सुविधा के वर्शन 2 के साथ नया क्लाइंट इंटिग्रेशन करने का तरीका बताया गया है.
डिपेंडेंसी जोड़ना
अपने ऐप्लिकेशन की रूट-लेवल वाली build.gradle फ़ाइल में, Play की गेम सेवाओं के एसडीके टूल की डिपेंडेंसी जोड़ें. अगर 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>अपने गेम के Game services प्रोजेक्ट आईडी को वैल्यू के तौर पर इस्तेमाल करके, स्ट्रिंग रिसोर्स रेफ़रंस
@string/game_services_project_idतय करें. Google Play Console में, कॉन्फ़िगरेशन पेज पर जाकर, अपने गेम के नाम के नीचे गेम सेवाओं का प्रोजेक्ट आईडी देखा जा सकता है.अपनी
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 Games Services की प्रोफ़ाइल मौजूद नहीं है.
- आपका गेम, Play की गेम सेवाओं के एसडीके टूल
com.google.android.gms:play-services-games-v2:21.0.0या इसके बाद के वर्शन के साथ इंटिग्रेट किया गया हो.
प्रोफ़ाइल बनाने के लिए अपने-आप ट्रिगर होने वाले प्रॉम्प्ट को रोकने के लिए, यह तरीका अपनाएं:
AndroidManifest.xmlफ़ाइल में,<meta-data>एलिमेंट मेंcom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONटैग जोड़ें. साथ ही,<application>एलिमेंट में एट्रिब्यूट जोड़ें:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>इस फ़्लैग को सही पर सेट करने से, Play की गेम सेवाओं को यह सूचना मिलती है कि आपका गेम, प्रोफ़ाइल बनाने की प्रोसेस को मैनेज करेगा. इसलिए, Play की गेम सेवाओं की मदद से, डिवाइस पर उन उपयोगकर्ताओं के लिए प्रोफ़ाइल बनाने का यूज़र इंटरफ़ेस अपने-आप नहीं दिखेगा जिनके पास Play की गेम सेवाओं की मौजूदा प्रोफ़ाइल नहीं है.
किसी भी Play की गेम सेवाओं वाले एपीआई को कॉल करने पर,
GamesClientStatusCodes.SIGN_IN_REQUIREDस्टेटस कोड से पता चलता है कि कॉल पूरा नहीं हो सका. ऐसा इसलिए हुआ, क्योंकि Play की गेम सेवाओं वाली प्रोफ़ाइल मौजूद न होने की वजह से, उपयोगकर्ता की पुष्टि अपने-आप नहीं हो सकी.इससे, जिन लोगों के पास Play की गेम सेवाओं वाली प्रोफ़ाइल नहीं है वे पुष्टि करने के लिए लागू किए गए तरीकों का इस्तेमाल कर सकते हैं. इसके लिए, उन्हें Play की गेम सेवाओं वाली प्रोफ़ाइल बनाने के लिए तुरंत नहीं कहा जाएगा. प्रोफ़ाइल बनाने की प्रोसेस शुरू करने के लिए,
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)".