Google Play 游戏服务 showAchievments()

Posted

技术标签:

【中文标题】Google Play 游戏服务 showAchievments()【英文标题】:Google Play Game Services showAchievments() 【发布时间】:2018-05-09 20:15:51 【问题描述】:

我正在尝试在我的 android 应用上显示成就。我正在使用https://developers.google.com/games/services/android/achievements提供的方法

private void showAchievements() 
    System.out.println("start showAchievements");
    Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
        .getAchievementsIntent()
        .addOnSuccessListener(new OnSuccessListener<Intent>() 
            @Override
            public void onSuccess(Intent intent) 
                System.out.println("in onSuccess");
                startActivityForResult(intent, RC_ACHIEVEMENT_UI);
            
        );

但是当我调用该方法时,我得到了异常:

E/AndroidRuntime:致命异常:GoogleApiHandler 进程:com.my.application PID:1927 java.lang.IllegalStateException:游戏 API 需要 https://www.googleapis.com/auth/games_lite 函数。

我认为问题来自 Games.getAchievementsClient() 方法,但无法修复

【问题讨论】:

您是否仔细阅读了 Google 提供的问题排查文档? developers.google.com/games/services/android/troubleshooting 我刚刚做到了。一切都是正确的。它没有帮助。 我偶然发现了这两个答案,也许他们可以解决你的问题:***.com/a/16599446/2734302***.com/a/36414508/2734302 谢谢,但不,我的问题不同。我的 AndroidManifest.xml 是正确的 嗨! getAchievementsgetPlayersClient 都出现了同样的错误。你找到解决办法了吗? 【参考方案1】:

您的 GoogleSignIn.getLastSignedInAccount(this) 似乎没有 Games.SCOPE_GAMES_LITE。

您可以通过 GoogleSignIn.hasPermissions 进行检查。如果没有此类权限,您应该使用 GoogleSignIn.requestPermissions 请求它或使用 GoogleSignInClient.silentSignIn 接收新帐户。

【讨论】:

以上是关于Google Play 游戏服务 showAchievments()的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务 - 无法登录游戏中心

Android Google Play 游戏服务回合制多人游戏不自动匹配

java - Google Play 游戏服务

Android 模拟器上的 Google Play 服务和 Google Play 游戏应用

Google Play 游戏服务实时多人游戏停止工作

使用“Google Play 游戏服务”玩游戏时突然断开连接