检测用户退出 Google Play 游戏登录
Posted
技术标签:
【中文标题】检测用户退出 Google Play 游戏登录【英文标题】:Detecting user backing out of Google Play Games Login 【发布时间】:2017-05-03 09:03:06 【问题描述】:在自动登录的游戏中,如果用户在提示登录 Play 游戏时按下了“取消”按钮,我们如何才能检测到用户实际按下了取消按钮?
Google 改变了玩家登录 Google Play 游戏服务的方式,之前我在 onActivityResult 中检查结果代码。像这样:
protected void onActivityResult(int request, int resultCode, Intent data)
if (request == RC_SIGN_IN)
if(resultCode==0)
//User has aborted sign in, so show dialog and set flags to stop
//Auto sign in here
但是,由于事情发生了变化,当按下取消时,它现在返回 10002,根据Docs,这意味着.....(我添加的重点)
登录失败时返回给调用Activity的结果代码。
尝试登录游戏服务失败。例如,如果网络不稳定、用户帐户已被禁用或无法获得同意,则可能会发生这种情况。
所以,当我检查结果代码 10002 时,我可以将我的代码放在那里以禁用自动登录,但是,如果网络连接“不稳定”或其他问题,我不希望这样做 - 仅当用户退出时.....
如何做到这一点?
【问题讨论】:
【参考方案1】:我认为有一些连接错误的侦听器和方法,如处理连接故障指南中提到的onConnectionFailed()。
取消响应可以放在else条件中:
@@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN)
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
else if(resultCode == RESULT_CANCELED)
// Do something when user clicks Cancel..
【讨论】:
以上是关于检测用户退出 Google Play 游戏登录的主要内容,如果未能解决你的问题,请参考以下文章