2014-10-20 167 views
5

谷歌玩遊戲成就解鎖彈出我用這個簡單的方法,從開發文檔解鎖成就:沒有顯示

Games.Achievements.unlock(getApiClient(), "my_achievement_id"); 

成就解鎖,但沒有彈出顯示出來。登錄到已連接的Google Play遊戲時也沒有彈出窗口。

回答

9

我一直在努力,這就是爲什麼決定分享它在計算器上。我已在my developer's blog上描述了對此問題的簡單修復。

這裏是短版:

只是一個視圖添加到您想要顯示的成就在這樣的佈局:

<FrameLayout 
     android:id="@+id/gps_popup" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" /> 

當你有你的佈局準備好你NEET裏面執行這個你活動或片段:

Games.setViewForPopups(getApiClient(), findViewById(R.id.gps_popup)); 

您必須確定您的GoogleApiClient已連接,否則您的應用程序將崩潰。

+1

是否必須連接GoogleApiClient?如果它已正確實例化但未實際連接?我不明白爲什麼連接應該對設置視圖有任何影響。 – Tosen 2015-04-21 13:05:54

+0

完美工作.. – 2016-08-04 18:51:41

1
<FrameLayout 
     android:id="@+id/gps_popup" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" /> 

這是亞切克Kwiecień答案相同

GamesClient gamesClient = Games.getGamesClient(MainActivity.this, GoogleSignIn.getLastSignedInAccount(context)); 
gamesClient.setViewForPopups(findViewById(R.id.gps_popup)); 

這改變了,因爲有兩個參數setViewForPopups已經過時了。