无法在Android版Google Play游戏中检索排行榜

时间:2015-11-20 09:50:29

标签: android google-play-games

我正在尝试编写一个自定义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+中的游戏进行游戏测试圆。

我在这里缺少什么?

0 个答案:

没有答案