1

我想在我的應用中使用谷歌播放服務在線評分和achivments。我第一次這樣做,我不明白它是如何在代碼中。我如何獲得API客戶端? (谷歌播放服務)

Games.Achievements.unlock(client, "CgkI2qWM-fIQEAIQAQ"); 
Games.Achievements.increment(client, "CgkI2qWM-fIQEAIQAQ", 1); 

所以,我的問題。我如何獲得Api客戶端?

我正在嘗試使用此代碼,來自文檔。但是得到一個錯誤。

client = new GoogleApiClient.Builder(this) 
     .addApi(Plus.API) 
     .addScope(Plus.SCOPE_PLUS_LOGIN) 
     .setAccountName("[email protected]") 
     .build(); 
     client.connect(); 

我的日誌

07-05 10:25:49.604: E/AndroidRuntime(14410): FATAL EXCEPTION: main 
07-05 10:25:49.604: E/AndroidRuntime(14410): java.lang.IllegalStateException: GoogleApiClient is not connected yet. 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.google.android.gms.internal.hn.a(Unknown Source) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.google.android.gms.common.api.c.b(Unknown Source) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.google.android.gms.games.internal.api.AchievementsImpl.unlock(Unknown Source) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.pahanuch.candiesmaster.Main.Save(Main.java:1926) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.pahanuch.candiesmaster.Main$4.run(Main.java:1912) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at android.os.Handler.handleCallback(Handler.java:615) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at android.os.Looper.loop(Looper.java:137) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at android.app.ActivityThread.main(ActivityThread.java:4745) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at java.lang.reflect.Method.invokeNative(Native Method) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at java.lang.reflect.Method.invoke(Method.java:511) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
07-05 10:25:49.604: E/AndroidRuntime(14410): at dalvik.system.NativeStart.main(Native Method) 

回答

1

Google建議您使用BaseGameUtils來管理Play遊戲服務。這會自動處理大部分艱苦工作(例如登錄,解鎖成就等),並且與Play遊戲服務交互更容易,更安全。

查看this article,它描述瞭如何使用BaseGameUtils進行登錄,然後閱讀後續的成就等。所有的信息都提供給您,讓您快速入門。

注意:在android-samples包中提供了BaseGameUtils。它可以下載here - 看/BasicSamples/libraries找到它。

1

連接是異步的。 GoogleApiClient將在連接時執行回撥,或者更可能是第一次連接失敗並需要進一步操作。

查看有關如何實施onConnectionFailed(),onConnectionSuspended()onConnected()的文檔。只有當您收到onConnected()回叫而沒有相應的onConnectionSuspended()回叫時,才能使用GoogleApiClient