Android - 加载其他玩家得分

时间:2015-01-19 17:58:15

标签: android

我正在为我的Android应用程序编写自定义排行榜,并使用Google Play服务获取必要的数据。通过执行以下调用,我能够成功检索以当前登录用户为中心的排行榜得分页面。

result = Games.Leaderboards.loadPlayerCenteredScores(getGoogleApiClient(), leaderboardId, LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC, 4, false);

但是,当我尝试使用以下服务调用检索下一页乐谱时,我会在服务返回结果时收到 SERVICE_DISABLED 状态代码。

result = Games.Leaderboards.loadMoreScores(getGoogleApiClient(), leaderboardScoreBuffer, 10, PageDirection.NEXT);

在尝试检索下一页的分数时,我有什么不正确的做法吗?我应该指出,当我最初加载排行榜的首页时,加载额外的分数是完美的。我认为Google Play服务允许您在最初加载以玩家为中心的分数时加载额外的分数页。

谢谢。

1 个答案:

答案 0 :(得分:3)

我最近面临同样的问题。为我修复的是始终在第一次和额外的loadMoreScores代码中查询相同数量的分数。

所以如果你打电话

result = Games.Leaderboards.loadPlayerCenteredScores(getGoogleApiClient(), leaderboardId, LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC, 4, false);

有4个条目。

那么你的另一个电话就是

result = Games.Leaderboards.loadMoreScores(getGoogleApiClient(), leaderboardScoreBuffer, 4, PageDirection.NEXT);

还有4个条目。这对我来说是固定的 - 我知道这是一个非常可怕的解决方案,我不知道为什么它不会以通常的方式工作,但希望它适合你。