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 是正确的 嗨!getAchievements
和 getPlayersClient
都出现了同样的错误。你找到解决办法了吗?
【参考方案1】:
您的 GoogleSignIn.getLastSignedInAccount(this) 似乎没有 Games.SCOPE_GAMES_LITE。
您可以通过 GoogleSignIn.hasPermissions 进行检查。如果没有此类权限,您应该使用 GoogleSignIn.requestPermissions 请求它或使用 GoogleSignInClient.silentSignIn 接收新帐户。
【讨论】:
以上是关于Google Play 游戏服务 showAchievments()的主要内容,如果未能解决你的问题,请参考以下文章
Android Google Play 游戏服务回合制多人游戏不自动匹配