2015-01-02 10 views
5

जब मैं एक उपलब्धि अनलॉक करता हूं तो "उपलब्धि अनलॉक" पॉपअप पॉप अप नहीं हो रहा है लेकिन उपलब्धि अनलॉक है क्योंकि मैं उपलब्धि सूची में देख सकता हूं।Google Play गेम सेवा - अनलॉक अचीवमेंट पॉपअप नहीं दिखाया गया

मैंने पहले से ही this समाधान का प्रयास किया है लेकिन यह काम नहीं कर रहा है। "गतिविधि से अधिक खेल"

gac = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      .build(); 
app.setGoogleApiClient(gac); 
gac.connect(); 

मेरे में मैं निम्न कार्य करें::

मैं अपने MainActivity में इस तरह GoogleApiClient प्रारंभ

ApplicationClass app = (ApplicationClass) getApplication(); 
googleApiClient = app.getGoogleApiClient(); 

... और मैं इस तरह उपलब्धियों को अनलॉक:

Games.Achievements.unlock(googleApiClient, "achievement id"); 

अग्रिम धन्यवाद!

उत्तर

3

खेलों एपीआई एक ही गतिविधि के लिए डिज़ाइन किया गया है हालांकि आप इसे एकाधिक में उपयोग कर सकते हैं। क्या आपको GithHub pages पर प्रदान किए गए नमूने देखने का मौका मिला है? उनके पास बेसिक सैंपल्स/लाइब्रेरीज़/बेसगेम यूटिल्स के तहत कुछ कक्षाएं हैं जो उपयोगी हो सकती हैं।

आप this के साथ अपनी मुख्य गतिविधि पर बिल्डर विधि को कॉल कर रहे हैं।

new GoogleApiClient.Builder(this) //this being your MainActivity 

फिर आप एपीआई क्लाइंट को एप्लिकेशन क्लास में सेट कर रहे हैं। अब, जब आप अपने नए GameOverActivity में हैं, तो एपीआई क्लाइंट उस गतिविधि पर एक दृश्य दिखाने की कोशिश कर रहा है जो अब स्क्रीन पर मौजूद नहीं है। इसमें केवल आपके मुख्य गतिविधि का संदर्भ है। आपको एपी क्लाइंट के लिए एप्लिकेशन क्लास पर एक वैरिएबल सेट नहीं करना चाहिए। यह भी बुरा अभ्यास है क्योंकि आप श्रोता कॉलबैक को गतिविधि में सेट करते हैं और कॉलबैक में से किसी एक के द्वारा अब और नहीं हो सकता है।

कोई भी गतिविधि जिसे आप एपीआई एपीआई के साथ बातचीत करना चाहते हैं, BaseGameActivity से BaseGameUtils में गिटहब पर प्राप्त होना चाहिए। प्रत्येक गतिविधि में आपके पास getApiClient() नामक एक विधि होगी।

संबंधित मुद्दे