Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取谷歌排行榜中的用户排名(最新库)_Android_Google Play Services - Fatal编程技术网

Android 获取谷歌排行榜中的用户排名(最新库)

Android 获取谷歌排行榜中的用户排名(最新库),android,google-play-services,Android,Google Play Services,我想检索当前用户在排行榜中的位置 我已经实现了登录和排行榜用户界面,但我真的无法获得这个排名 我试图遵循一些旧的解决方案,但无法用新版本的谷歌库实现 例如,我尝试过,没有运气。更新玩家的分数 游戏通过调用LeadboardsClient.SubmitCore并传入排行榜ID和原始分数值来更新他们在排行榜上的分数 以下代码片段作为示例显示了应用程序如何更新玩家的分数: Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAcc

我想检索当前用户在排行榜中的位置

我已经实现了登录和排行榜用户界面,但我真的无法获得这个排名

我试图遵循一些旧的解决方案,但无法用新版本的谷歌库实现


例如,我尝试过,没有运气。

更新玩家的分数 游戏通过调用LeadboardsClient.SubmitCore并传入排行榜ID和原始分数值来更新他们在排行榜上的分数

以下代码片段作为示例显示了应用程序如何更新玩家的分数:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);
一个好的做法是在strings.xml文件中定义排行榜ID,以便您的游戏可以按资源ID引用排行榜。在调用更新和加载玩家分数时,请确保也遵循以下最佳做法,以避免超过API配额

显示排行榜 要显示排行榜,请调用LeaderboardsClient.getLeaderboardIntent以获取创建默认排行榜用户界面的意图。然后,您的游戏可以通过调用startActivityForResult来打开UI

以下代码片段作为示例显示了应用程序如何更新玩家的分数。在代码段中,RC_Leadboard_UI是请求代码的任意整数

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}
Notice that even though no result is returned, you have to use startActivityForResult so that the API can obtain the identity of the calling package.
实施后—

要检索当前登录玩家的玩家统计数据,请执行以下步骤:

调用PlayerStatsClient.loadPlayerStats方法。 如果调用成功,Google Play games services将返回一个任务对象,异步加载PlayerStats对象。使用此对象的方法检索有关已登录玩家在应用程序中的活动的数据

例如: 公共无效棋盘手状态{ Games.getPlayerStatsClientthis,GoogleSignIn.GetLastSignedAccountThis .loadPlayerStatstrue .AddOnCompleteListener新建OnCompleteListener>{ @凌驾 公共空间onComplete@NonNull任务>任务{ 如果task.isSuccessful成功{ //检查缓存数据。 如果task.getResult.isStale{ Log.dTAG,使用缓存数据; } PlayerStats stats=task.getResult.get; 如果stats!=null{ Log.dTAG,加载玩家统计信息; 如果stats.getDaysSinceLastPlayed>7{ Log.dTAG,已经超过一周了; } 如果stats.getNumberOfSessions>1000{ Log.dTAG,资深玩家; } 如果stats.getProbability==1{ Log.dTAG,玩家面临高流失风险; } } }否则{ int status=CommonStatusCodes.DEVELOPER\u错误; 如果task.getException instanceof ApiException{ status=ApiException task.getException.getStatusCode; } Log.dTAG,无法获取统计数据状态: +状态+:+task.getException; } } };
}

您的代码解释了如何实现排行榜,我问的是如何检索用户的排名。仍然不认为这是正确的答案,我想要一个不同的方法尝试检查getRank,如本相关文章中所述。在中,可以使用getDisplayRank、getDisplayRank或“getRank”。仍然找不到更新的示例来使用它。