获得在谷歌排行榜用户排名(最新库)

问题描述 投票:1回答:1

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

我已经实现了登录和排行榜UI,但我真的不能得到这个级别的车程。

我试图按照一些旧的解决方案,但无法与谷歌图书馆的新版本中实现。

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

android google-play-services
1个回答
-1
投票

更新玩家的得分游戏通过调用LeaderboardsClient.submitScore()更新他们在领先榜上的分数,并通过在排行榜ID和原始分数值。

下面的代码片段为例说明你的应用程序如何更新玩家的分数:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

好的做法是在strings.xml文件中定义排行榜ID,那么你的游戏可以通过资源ID引用排行榜。当拨打电话进行更新和负载球员得分时,请务必也遵循这些最佳做法,以避免超出API配额。

显示排行榜要显示排行榜,请拨打LeaderboardsClient.getLeaderboardIntent()得到一个意向,以创建默认领先的用户界面。然后,您的游戏可以通过调用startActivityForResult弹出UI。

下面的代码片段为例说明你的应用程序如何更新玩家的分数。中的代码片断,RC_LEADERBOARD_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()方法。如果调用成功,谷歌Play游戏服务返回一个异步加载PlayerStats对象任务对象。使用此对象的方法,您的应用程序检索有关登录的玩家的活动数据。

例如:公共无效checkPlayerStats(){Games.getPlayerStatsClient(这一点,GoogleSignIn.getLastSignedInAccount(本)).loadPlayerStats(真).addOnCompleteListener(新OnCompleteListener>(){@覆盖公共无效的onComplete(@NonNull任务>任务){如果( task.isSuccessful()){//检查高速缓存的数据,如果(task.getResult()isStale()){Log.d(TAG, “使用高速缓存的数据”);。。} PlayerStats统计= task.getResult()。获得();如果(统计!= NULL){Log.d(TAG, “球员统计装”);如果(stats.getDaysSinceLastPlayed()> 7){Log.d(TAG, “这是超过一个星期” );}如果(stats.getNumberOfSessions()> 1000){Log.d(TAG, “老玩家”);}如果(stats.getChurnProbability()== 1){Log.d(TAG,“播放器是在高流失“)的风险;}}}否则{INT状态= CommonStatusCodes.DEVELOPER_ERROR;如果(task.getException()的instanceof ApiException){状态=((ApiException)task.getException())getStatusCode();} Log.d (TAG, “无法抓取统计数据状态:” +状态+ “:” + task.getException());}}}); }

© www.soinside.com 2019 - 2024. All rights reserved.