如何在安卓系统中判断成就是否已完成?

4
我正在开发一款带有成就系统的安卓应用。是否有可能知道该成就是否已解锁(或者增量成就是否达成了目标)?
我找到了一些旧版实现方案,它们使用 Games.Achievements 并添加回调函数,但是已经被弃用了。下面是我用来解锁成就的代码:
Games.getAchievementsClient(MyActivity.this, acct).unlockImmediate(my_achievement_id));

我想添加一个监听器,以便在我的代码执行后知道成就是否已解锁。
1个回答

6

使用 load 方法解决:

Games.getAchievementsClient(MyActivity.this, acct).load(true).addOnSuccessListener(new OnSuccessListener<AnnotatedData<AchievementBuffer>>() {
        @Override
        public void onSuccess(AnnotatedData<AchievementBuffer> achievementBufferAnnotatedData) {
            AchievementBuffer buffer = achievementBufferAnnotatedData.get();
            Achievement achievement;
            Iterator<Achievement> iterator = buffer.iterator();

            while (iterator.hasNext()) {
                achievement = iterator.next();
                if (achievement.getAchievementId().equals(myAchievementId) && achievement.getState() == Achievement.STATE_UNLOCKED) {
                    // The achievement is unlocked
                } else {
                    // The achievement is locked
                }
            }
        }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接