我怎么知道成就是否在 android 内完成?

How can I know if an achievement is completed in android?

我正在开发具有成就的 android 应用程序。是否可以知道成就是否解锁(或者是否达到了增量目标)?

我找到了使用 Games.Achievements 并添加回调函数的旧实现的解决方案,但它已被弃用。这是我用来解锁成就的代码:

Games.getAchievementsClient(MyActivity.this, acct).unlockImmediate(my_achievement_id));

我想添加一个侦听器以了解在执行我的代码后成就是否已解锁。

使用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
                }
            }
        }
});