Android - 如何检查成就是不是已解锁
Posted
技术标签:
【中文标题】Android - 如何检查成就是不是已解锁【英文标题】:Android - How to check if an achievement has been unlockedAndroid - 如何检查成就是否已解锁 【发布时间】:2014-02-28 06:57:17 【问题描述】:我的游戏有一些增量成就,我想检查其中一个是否已经解锁。我该怎么做?
原来我是用这个方法的:
getGamesClient().incrementAchievement(achievement, increment);
然后我尝试使用这个:
mHelper.getGamesClient().incrementAchievementImmediate(new OnAchievementUpdatedListener()
@Override
public void onAchievementUpdated(int statusCode, String achievementId)
// TODO: Check if the achievement got unlocked
, achievement, increment);
这是做我想做的事情的正确方法吗?有没有更好的办法?
我的测试中只有两个 statusCode 值。
值:5 = STATUS_NETWORK_ERROR_OPERATION_DEFERRED
值:0 = STATUS_OK
有人可以帮我解决这个问题吗?
谢谢
【问题讨论】:
【参考方案1】:声明这个内部类:
class AchievementClass implements ResultCallback<Achievements.LoadAchievementsResult>
@Override
public void onResult(LoadAchievementsResult arg0)
Achievement ach;
AchievementBuffer aBuffer = arg0.getAchievements();
Iterator<Achievement> aIterator = aBuffer.iterator();
while (aIterator.hasNext())
ach = aIterator.next();
if ("The Achievement Id you are checking".equals(ach.getAchievementId()))
if (ach.getState() == Achievement.STATE_UNLOCKED)
// it is unlocked
else
//it is not unlocked
aBuffer.close();
break;
并像这样使用它:
Games.Achievements.load(ApiClient, false).setResultCallback(new AchievementClass());
这将获取当前登录玩家的成就数据,遍历所有的成就,当达到你关心的成就时,它会检查它是否被解锁。
【讨论】:
以上是关于Android - 如何检查成就是不是已解锁的主要内容,如果未能解决你的问题,请参考以下文章