इस गाइड में, Google Play Games Services के इवेंट एपीआई का इस्तेमाल करके, गेम के आंकड़ों के लिए खिलाड़ी के गेमप्ले का डेटा इकट्ठा करने का तरीका बताया गया है. एपीआई, com.google.android.gms.games.event
और com.google.android.gms.games
में मिल सकते हैं.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो इवेंट गेम के कॉन्सेप्ट की समीक्षा करें.
इवेंट एपीआई का इस्तेमाल करके कोड लिखने से पहले:
- Google Play Console में, अपने गेम के लिए इवेंट तय करें.
- साइन इन करने से जुड़ी चेकलिस्ट के सुझावों का पालन करें.
इवेंट क्लाइंट पाना
इवेंट एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को पहले एक
EventsClient
ऑब्जेक्ट पाना होगा. ऐसा करने के लिए, Games.getEventsClient()
तरीके को कॉल करें और मौजूदा प्लेयर के लिए गतिविधि और GoogleSignInAccount
को पास करें. खिलाड़ी के खाते की जानकारी वापस पाने का तरीका जानने के लिए, Android Games में साइन इन करना लेख पढ़ें.
इवेंट सबमिट करना
अपने गेम में कोड जोड़कर, Google Play Games Services को सूचना दी जा सकती है, ताकि जब भी आपके गेम में कोई दिलचस्प इवेंट होता है, तो वह Google Play Games Services को सूचना दे सके.
इवेंट का अपडेट भेजने के लिए, eventId
वैल्यू और 0 से ज़्यादा या उसके बराबर के पूर्णांक incrementAmount
के साथ EventsClient.increment()
को कॉल करें.
eventId
को Google Play Games Services जनरेट करता है. ऐसा तब होता है, जब आपने Google Play Console में पहली बार इवेंट तय किया हो. इसका इस्तेमाल, आपके गेम में इस इवेंट की खास पहचान करने के लिए किया जाता है.incrementAmount
इनपुट का इस्तेमाल करके, गेम के किसी लक्ष्य को पूरा करने के लिए, खिलाड़ी की प्रगति की संख्या बताई जा सकती है. उदाहरण के लिए, अगर आपके गेम को '500 बग-आइड मॉन्स्टर को हराएं' इवेंट को ट्रैक करना है, तोincrementAmount
वैल्यू उन मॉन्स्टर की संख्या हो सकती है जिन्हें प्लेयर ने एक ही लड़ाई में मारा है.
यहां एक उदाहरण दिया गया है, जिसमें 1 की बढ़ोतरी वाले इवेंट को सबमिट करने का तरीका बताया गया है:
public void submitEvent(String eventId) { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(eventId, 1); }
इवेंट वापस लाना
EventsClient.load()
को कॉल करके, अपने गेम के लिए Google के सर्वर में सेव किए गए सभी इवेंट का डेटा वापस पाया जा सकता है. तरीका कॉल में, एक बूलियन वैल्यू पास करें. इससे यह पता चलता है कि Google Play Games Services को उपयोगकर्ता के डिवाइस पर, कैश मेमोरी में सेव किया गया डेटा मिटाना चाहिए या नहीं.
Google Play Console में तय किए गए खास इवेंट का डेटा पाने के लिए, EventsClient.loadByIds()
को कॉल करें और इनपुट पैरामीटर में इवेंट आईडी का कलेक्शन पास करें.
नीचे दिए गए स्निपेट में बताया गया है कि अपने गेम के सभी इवेंट की सूची के लिए, Google Play Games Services से क्वेरी कैसे की जा सकती है:
public void loadEvents() { Games.getEventsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .load(true) .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() { @Override public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) { if (task.isSuccessful()) { // Process all the events. for (Event event : task.getResult().get()) { Log.d(TAG, "loaded event " + event.getName()); } } else { // Handle Error Exception exception = task.getException(); int statusCode = CommonStatusCodes.DEVELOPER_ERROR; if (exception instanceof ApiException) { ApiException apiException = (ApiException) exception; statusCode = apiException.getStatusCode(); } showError(statusCode); } } }); }