Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我怎么知道一项成就是否在安卓系统中完成?_Android_Google Play Games - Fatal编程技术网

Android 我怎么知道一项成就是否在安卓系统中完成?

Android 我怎么知道一项成就是否在安卓系统中完成?,android,google-play-games,Android,Google Play Games,我正在开发一款android应用程序,成绩斐然。是否有可能知道成就是否被解锁(或者目标是否通过增量实现) 我已经找到了使用Games.congregations并添加回调函数的旧实现的解决方案,但它已被弃用。这是我用来解锁成就的代码: Games.getAchievementsClient(MyActivity.this, acct).unlockImmediate(my_achievement_id)); 我想添加一个侦听器,以了解在执行代码后是否解锁了成就。使用load方法解决: Game

我正在开发一款android应用程序,成绩斐然。是否有可能知道成就是否被解锁(或者目标是否通过增量实现)

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

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
                }
            }
        }
});
Games.getAchievementsClient(MyActivity.this,acct).load(true).addOnSuccessListener(new OnSuccessListener()){
@凌驾
成功时公共无效(AnnotatedData实现缓冲AnnotatedData){
AchievementBuffer buffer=achievementBufferAnnotatedData.get();
成就;
迭代器迭代器=缓冲区。迭代器();
while(iterator.hasNext()){
成就=迭代器.next();
if(acquisition.getAchieventId().equals(myAchieventId)&&acquisition.getState()==acquisition.STATE\u解锁){
//这项成就被解锁了
}否则{
//成就被锁定
}
}
}
});