Android गेम के इवेंट

इस गाइड में, Google Play की गेम सेवाओं के इवेंट एपीआई का इस्तेमाल करके, गेम के विश्लेषण के लिए खिलाड़ी के गेमप्ले का डेटा इकट्ठा करने का तरीका बताया गया है. ये एपीआई, com.google.android.gms.games.event और com.google.android.gms.games पैकेज में उपलब्ध हैं.

शुरू करने से पहले

अगर आपने अब तक ऐसा नहीं किया है, तो इवेंट गेम कॉन्सेप्ट की समीक्षा करना आपके लिए फ़ायदेमंद हो सकता है.

इवेंट एपीआई का इस्तेमाल करके कोडिंग शुरू करने से पहले:

इवेंट क्लाइंट पाना

इवेंट एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को सबसे पहले EventsClient ऑब्जेक्ट पाना होगा. इसके लिए, PlayGames.getEventsClient() तरीके को कॉल करें और गतिविधि को पास करें.

इवेंट सबमिट करना

अपने गेम में कोड जोड़ा जा सकता है, ताकि जब भी गेम से जुड़ा कोई इवेंट हो, तो Play Games Services को सूचना दी जा सके.

इवेंट अपडेट भेजने के लिए, EventsClient.increment() को कॉल करें. इसके लिए, eventId वैल्यू और incrementAmount पूर्णांक का इस्तेमाल करें. incrementAmount की वैल्यू 0 के बराबर या उससे ज़्यादा होनी चाहिए.

  • eventId को Play Games Services जनरेट करती है. ऐसा तब होता है, जब Google Play Console में पहली बार इवेंट तय किया जाता है. इसका इस्तेमाल, आपके गेम में इस इवेंट की पहचान करने के लिए किया जाता है.

  • incrementAmount इनपुट का इस्तेमाल करके, किसी गेम से जुड़े लक्ष्य को पूरा करने के लिए, खिलाड़ी की मात्रात्मक प्रोग्रेस के बारे में बताया जा सकता है. उदाहरण के लिए, अगर आपके गेम को '500 बग-आइड मॉन्स्टर को हराएं' इवेंट को ट्रैक करना है, तो incrementAmount वैल्यू, एक ही लड़ाई में खिलाड़ी के मारे गए मॉन्स्टर की संख्या हो सकती है.

यहां इवेंट को 1 की बढ़ोतरी वाली वैल्यू के साथ सबमिट करने का उदाहरण दिया गया है:

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

इवेंट वापस पाना

EventsClient.load() को कॉल करके, Google के सर्वर में सेव किए गए अपने गेम के सभी इवेंट का डेटा वापस पाया जा सकता है. मेथड कॉल में, बूलियन वैल्यू पास करें. इससे यह पता चलेगा कि Play की गेम सेवाओं को उपयोगकर्ता के डिवाइस पर, स्थानीय तौर पर कैश मेमोरी में सेव किया गया डेटा मिटाना चाहिए या नहीं.

Google Play Console में तय किए गए किसी इवेंट का डेटा वापस पाने के लिए, EventsClient.loadByIds() को कॉल करें और इनपुट पैरामीटर में इवेंट आईडी का ऐरे पास करें.

यहां दिए गए स्निपेट में, Play Games Services से अपने गेम के सभी इवेंट की सूची पाने का तरीका बताया गया है:

public void loadEvents() {
  PlayGames.getEventsClient(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);
          }
        }
      });
}