Google Play Game Services获得成就列表



我将Google Play Game Services整合到我的游戏中。现在我想在不启动成就意图的情况下检索成就列表。

我想要这个意图后面的列表,这样我就可以用这个信息填充我自己的UI元素。我没有使用旧的GooglePlayServicesClient,我正在使用googleapicclient !

谢谢你的帮助;)

检索成就列表的代码可以在这个答案中找到。

下面是代码片段-查看链接答案以获得完整描述:

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中运行,因为它可能需要一些时间来完成,同时等待成就加载。

相关内容

  • 没有找到相关文章

最新更新