【问题标题】:How can I know if an achievement is completed in android?我怎么知道一个成就是否在android中完成?
【发布时间】:2018-09-24 02:43:21
【问题描述】:

我正在开发一个有成就的安卓应用。是否有可能知道成就是否已解锁(或者目标是否已通过增量实现)?

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

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

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

【问题讨论】:

    标签: android google-play-games


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-23
      • 2023-04-08
      • 2017-07-17
      • 2011-11-18
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多