谷歌Play游戏成就解锁弹出窗口没有显示

时间:2014-10-20 20:52:24

标签: android google-play-services google-play-games

我正在使用开发人员文档中的这个简单方法解锁成就:

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

成就解锁,但没有弹出窗口显示。登录Google Play游戏时也没有弹出窗口 - 已连接。

4 个答案:

答案 0 :(得分:14)

我一直在努力解决这个问题,这就是为什么决定在stackoverflow上分享它。我在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" />

当您准备好布局时,您需要在Activity或Fragment中执行此操作:

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

您必须确定您的GoogleApiClient已连接,否则您的应用会崩溃。

答案 1 :(得分:9)

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

这与JacekKwiecień的答案相同

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

这已更改,因为不推荐使用带有2个参数的setViewForPopups。

答案 2 :(得分:2)

Jacek和user3782779的答案对我不起作用,我必须执行以下操作:

SELECT e.INCIDENT_NUMBER, e.DETAILED_DESCRIPTION, e.INCIDENT_ROOT_CAUSE
FROM N_EVALUATION e JOIN
     N_DISPOSITION d
     ON e.INCIDENT_NUMBER = d.INCIDENT_NUMBER
WHERE d.DISPOSITION_LINE_NUM = 1 AND
      e.ACTIVE_FLAG = 'Y' AND
      d.ACTIVE_FLAG = 'Y' AND
      e.DETAILED_DESCRIPTION IS NOT NULL;

答案 3 :(得分:0)

有同样的问题。我已通过在成就中添加图标解决了该问题。我不是在开玩笑,这真的很奇怪,但是此后开始起作用。请注意,我所说的是未发布项目,我只是在测试我的应用,不知道发生了什么。