Google 登录不适用于 Play 游戏服务启用,但无需启用
Posted
技术标签:
【中文标题】Google 登录不适用于 Play 游戏服务启用,但无需启用【英文标题】:Google SignIn does not work with Play Games Services enables, but works without 【发布时间】:2017-12-05 00:47:38 【问题描述】:首先让我们看一下运行良好的代码。这就是我们设置 Google Api 客户端的方式:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id))
.build();
GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
然后这个用于连接:
// GPGS needs optional apparently, at least it crashes without.
// Normal (non GPGS) SignIn works either way
googleApiClient.connect(SIGN_IN_MODE_OPTIONAL);
然后我们调用登录。覆盖出现,我选择我的电子邮件,登录运行,一切都很好:
public static void loginGoogleSDK()
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
GameApplication.getActivity().startActivityForResult(signInIntent, RC_SIGN_IN);
现在有非常相似的 Google Play 游戏服务登录,但总是返回 User Cancelled 错误。出现 GPGS 覆盖,可以选择一封电子邮件,然后消失并返回错误:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
.requestEmail()
.requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id))
.build();
GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
连接和登录是完全平等的。
用户取消结果代码,返回这里:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
// cancelled = true when using GPGS
GameLog.i("On Activity Result called, cancelled? " + (resultCode == RESULT_CANCELED) );
// [Other code for handling login....]
有人知道是什么原因造成的,以及我们如何在 Google Player Games Services 正常工作的情况下登录?
【问题讨论】:
【参考方案1】:我的代码是 100% 正确的。
我必须在我的游戏下的 Google Play 开发者控制台的“测试人员”下添加我的电子邮件。
这对于 Google+ 登录不是必需的,但对于游戏来说是必需的。
【讨论】:
【参考方案2】:我遇到了类似的问题,但根据我的阅读,您不能将 Auth.GOOGLE_SIGN_IN_API 与 Games.API 一起使用。
【讨论】:
在这里查看本指南,有可能:developers.google.com/games/services/android/offline-access以上是关于Google 登录不适用于 Play 游戏服务启用,但无需启用的主要内容,如果未能解决你的问题,请参考以下文章