我正在尝试编写一个自定义Activity来显示我的游戏中的排行榜,其外观与我的应用程序的风格相比,与Google Play游戏服务中提供的默认排行榜更为一致。但是,我在检索数据时遇到问题。
为了获得我的全球排行榜上的所有时间公共最高分,我使用以下代码:
protected void getTopScores() {
PendingResult<Leaderboards.LoadScoresResult> pendingScores = Games.
Leaderboards.loadTopScores(
googleApiClient,
GLOBAL_LEADERBOARD_ID,
LeaderboardVariant.TIME_SPAN_ALL_TIME,
LeaderboardVariant.COLLECTION_PUBLIC,
25,
true);
processPendingResult(pendingScores);
}
protected void processPendingResult(PendingResult<Leaderboards.LoadScoresResult> pendingScores){
pendingScores.setResultCallback(new ResultCallback<Leaderboards.LoadScoresResult>() {
@Override
public void onResult(Leaderboards.LoadScoresResult loadScoresResult) {
List<LeaderboardScore> leaderboardScores = extractScores(loadScoresResult);
notifyScoresLoaded(leaderboardScores);
}
});
}
protected List<LeaderboardScore> extractScores(Leaderboards.LoadScoresResult loadScoresResult) {
LeaderboardScoreBuffer buffer = loadScoresResult.getScores();
List<LeaderboardScore> leaderboardScores = new ArrayList<>();
for(int i = 0; i < buffer.getCount(); i++){
leaderboardScores.add(buffer.get(i));
}
return leaderboardScores;
}
但是,LeaderboardScoreBuffer
为空。我确保我的个人资料在Google Play游戏应用中公开,但仍然无法显示。
此外,如果我尝试使用LeaderboardVariant.COLLECTION_SOCIAL
,我会收到与登录用户相对应的单个值,但我还有其他一些用户对我已添加到Google+中的游戏进行游戏测试圆。
我在这里缺少什么?