我怎么知道成就是否在 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
}
}
}
});
我正在开发具有成就的 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
}
}
}
});