2014-10-20 5 views
5

Ich bin Entriegeln Leistung diese einfache Methode von Entwickler-Dokumentation mit:Google Play Games Leistung entriegelte Popup zeigt nicht

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

Achievement freigeschaltet, aber keine Popup erscheint. Es gibt auch kein Popup, wenn Sie bei Google Play Games angemeldet sind - das ist verbunden.

Antwort

9

Ich habe eine Weile mit diesem Problem gekämpft, deshalb habe ich beschlossen, es auf stackoverflow zu teilen. Ich habe eine einfache Lösung für dieses Problem unter my developer's blog beschrieben. Hier

ist die Kurzversion:

Fügen Sie einfach einen Blick auf die Layouts Sie Leistungen wie diese auf anzuzeigen:

<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" /> 

Wenn Sie Ihr Layout bereit, Sie neet dies auszuführen in Ihrem Aktivität oder Fragment:

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

Sie müssen sicher sein, dass Ihr GoogleApiClient zwar angeschlossen ist, sonst Ihre Anwendung abstürzen.

+1

Muss der GoogleApiClient tatsächlich verbunden sein? Was ist, wenn es ordnungsgemäß instanziiert, aber nicht wirklich verbunden ist? Ich verstehe nicht, warum die Verbindung zu einer Einstellung eine Auswirkung haben sollte. – Tosen

+0

perfekt gearbeitet .. –

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" /> 

Dies ist das gleiche in Jacek Kwiecień Antwort

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

Dies änderte sich, weil setViewForPopups mit 2 Parametern ist veraltet.