Google Play游戏服务成就加载

时间:2013-06-30 16:24:06

标签: android achievements google-play-games

所以我正在用Eclipse编写一个Java游戏,使用Google Play游戏服务来处理我的成就。我已完成sample games provided by Google中的所有操作,但我将GameHelper直接添加到现有活动而不是使用BaseGameActivity。现在我有一个问题。如果玩家使用一台设备解锁实际影响游戏的成就,我该如何让其他设备发现解锁成就?

通过一些浏览,我发现我应该使用mHelper.getGamesClient().loadAchievements(OnAchievementsLoadedListener listener),然后使用onAchievementsLoaded (int statusCode, AchievementBuffer buffer)监听器。 AchievementBuffer buffer似乎包含all the data I want

现在的问题是我不知道如何使用这个监听器。我应该把它放在哪里,我应该拨打loadAchievements()还是在登录时自动呼叫

如果有人可以帮助我,那将会很棒:)

1 个答案:

答案 0 :(得分:3)

实际上,Achievement缓冲区将包含您想要的所有数据(如果statusCode返回的是 STATUS_OK )。您可以通过以下方式从您的活动(按示例扩展BaseGameActivity)“按需”加载成就:

getGamesClient().loadAchievements(new OnAchievementsLoadedListener() {
    @Override
    public void onAchievementsLoaded(int statusCode, AchievementBuffer buffer) {
        if (statusCode == GamesClient.STATUS_OK) {
            int achievementsCount    = buffer.getCount();

            [...]

        }
        buffer.close();
    }
});

不要忘记关闭缓冲区。