Android排行榜和成就弃用

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

在将游戏服务游戏更新到11.8.0后,排行榜和成就变得弃用。

android google-play-services deprecated leaderboard achievements
1个回答
1
投票

因为我没有找到关于它的更多信息(遗憾的是没有Stackoverflow主题)。这是我更新我的代码以使用新的Android文档投诉的方式。

目前球员的高分:

在11.8.0之前:

Games.Leaderboards.loadCurrentPlayerLeaderboardScore(getApiClient(), leaderboard, highscoretime[scoreLevel], LeaderboardVariant.COLLECTION_PUBLIC).setResultCallback(
                    new ResultCallback<Leaderboards.LoadPlayerScoreResult>() {
                        @Override
                        public void onResult(Leaderboards.LoadPlayerScoreResult loadPlayerScoreResult) {
                            if (GamesStatusCodes.STATUS_OK == loadPlayerScoreResult.getStatus().getStatusCode()) {
                                if (loadPlayerScoreResult.getScore() != null) {

11.8之后:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
                    .loadCurrentPlayerLeaderboardScore(leaderboard, highscoretime[scoreLevel], LeaderboardVariant.COLLECTION_PUBLIC)
                    .addOnSuccessListener(new OnSuccessListener<AnnotatedData<LeaderboardScore>>() {
                                              @Override
                                              public void onSuccess(AnnotatedData<LeaderboardScore> leaderboardScoreAnnotatedData) {
                                                  if (leaderboardScoreAnnotatedData != null) {
                                                      if (leaderboardScoreAnnotatedData.get() != null) {

显示成就:

在11.8.0之前:

startActivityForResult(Games.Achievements.getAchievementsIntent(getApiClient()), RC_REQUEST_ACHIEVEMENTS);

11.8之后:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
            .getAchievementsIntent()
            .addOnSuccessListener(new OnSuccessListener<Intent>() {
                @Override
                public void onSuccess(Intent intent) {
                    startActivityForResult(intent, RC_REQUEST_ACHIEVEMENTS);
                }
            });

加载成就

在11.8.0之前

private class AchievementClass implements ResultCallback<Achievements.LoadAchievementsResult> {
    @Override
    public void onResult(@NonNull Achievements.LoadAchievementsResult arg0) {
        try {
            AchievementBuffer aBuffer = arg0.getAchievements();
            Iterator<Achievement> aIterator = aBuffer.iterator();
            while (aIterator.hasNext()) {
                Achievement ach = aIterator.next();

在11.8.0之后

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .load(true).addOnSuccessListener(new OnSuccessListener<AnnotatedData<AchievementBuffer>>() {
        @Override
        public void onSuccess(AnnotatedData<AchievementBuffer> achievementBufferAnnotatedData) {
© www.soinside.com 2019 - 2024. All rights reserved.