我正在为我的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服务允许您在最初加载以玩家为中心的分数时加载额外的分数页。
谢谢。
答案 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个条目。这对我来说是固定的 - 我知道这是一个非常可怕的解决方案,我不知道为什么它不会以通常的方式工作,但希望它适合你。