Google Play 游戏服务获取成就列表
Posted
技术标签:
【中文标题】Google Play 游戏服务获取成就列表【英文标题】:Google Play Game Services get achievements list 【发布时间】:2014-09-30 12:52:06 【问题描述】:我正在将 Google Play 游戏服务集成到我的游戏中。现在我想在不启动achievements intent 的情况下检索成就列表。
我想要该意图背后的列表,以便我可以使用此信息填充我自己的 UI 元素。 我没有使用旧的 GooglePlayServicesClient,我使用的是 GoogleApiClient!
感谢您的帮助;)
【问题讨论】:
看看我的this answer,它显示了你需要什么。 哇。让我试一试!谢谢 解决了!你介意回答这个吗?我会接受的!谢谢 【参考方案1】:检索成就列表的代码可以在this answer找到。
以下是代码 sn-p - 请参阅链接的答案以获取完整说明:
public void loadAchievements()
boolean fullLoad = false; // set to 'true' to reload all achievements (ignoring cache)
float waitTime = 60.0f; // seconds to wait for achievements to load before timing out
// load achievements
PendingResult p = Games.Achievements.load( playHelper.getApiClient(), fullLoad );
Achievements.LoadAchievementsResult r = (Achievements.LoadAchievementsResult)p.await( waitTime, TimeUnit.SECONDS );
int status = r.getStatus().getStatusCode();
if ( status != GamesStatusCodes.STATUS_OK )
r.release();
return; // Error Occured
// cache the loaded achievements
AchievementBuffer buf = r.getAchievements();
int bufSize = buf.getCount();
for ( int i = 0; i < bufSize; i++ )
Achievement ach = buf.get( i );
// here you now have access to the achievement's data
String id = ach.getAchievementId(); // the achievement ID string
boolean unlocked = ach.getState == Achievement.STATE_UNLOCKED; // is unlocked
boolean incremental = ach.getType() == Achievement.TYPE_INCREMENTAL; // is incremental
if ( incremental )
int steps = ach.getCurrentSteps(); // current incremental steps
buf.close();
r.release();
此代码应在 AsyncTask
中运行,因为在等待成就加载时可能需要一些时间才能完成。
【讨论】:
以上是关于Google Play 游戏服务获取成就列表的主要内容,如果未能解决你的问题,请参考以下文章