首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Play游戏服务:奇怪的登录行为

Google Play游戏服务:奇怪的登录行为
EN

Stack Overflow用户
提问于 2013-05-29 06:49:40
回答 1查看 6.5K关注 0票数 8

最近,我在我的应用程序中添加了对Google Play游戏服务的支持(添加了BaseGameActivity和GameHelper),它的登录和注销工作流程运行得很好。在我的图形线程中,我向主活动处理程序发送消息,它调用beginUserInitiatedSignIn或signOut。当识别过程完成时,游戏助手调用我的activity的onSignInFailed或onSignInSucceeded,我可以检查isSignedIn (如果调用了onSignInSucceeded,则为true)。

但今天我发现它现在的行为很奇怪。遗憾的是,我没有备份上一个工作版本,但essense代码是相同的。

如果我要求应用程序登录,它会显示google服务登录对话框(我的设备上有2个帐户)。我选择一个账号,按下ok,它会返回到我的应用程序,但onSignInSucceeded和onSignInFailed都不会被调用(之前如果我取消了这个对话框,我会看到“未知错误”消息)。当我第二次尝试登录时,它会启动一个旋转的圆圈,并无休止地等待。如果我点击屏幕,它将中止等待并返回到我的视图。

尽管如果我关闭应用程序并再次启动它,它会在启动时成功登录,调用onSignSucceded并在我签入运行时保持连接。上面写着:

代码语言:javascript
复制
onCreate: creating GamesClient
onStart.
onStart: connecting clients.
Connecting GamesClient.
onConnected: connected! client=1
All clients now connected. Sign-in successful.
All requested clients connected. Sign-in succeeded!

如果我注销,然后再次尝试登录,它会显示accounts对话框,并写道:

代码语言:javascript
复制
isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: starting new sign-in flow.
Connecting GamesClient.
onConnectionFailed: result 4
onConnectionFailed: since user initiated sign-in, trying to resolve problem.
resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41f8a610: android.os.BinderProxy@41f8a5b0}}
result has resolution. Starting it.

当我选择一个帐户时,它会返回到我的活动,并且不会调用onSignInSucceeded和onSignInFailed。如果我在运行时签入,我看到应用程序没有连接到google服务。当我再次尝试登录时,它显示永远旋转的圆圈,并说:

代码语言:javascript
复制
isGooglePlayServicesAvailable returned 0
beginUserInitiatedSignIn: continuing pending sign-in flow.
resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41f8a610: android.os.BinderProxy@41f8a5b0}}
result has resolution. Starting it. 

当我轻敲屏幕时,circle被中止,没有调用onSignInSucceeded或onSignInFailed等。

我无法想象哪里出了问题。处理程序在主线程上创建。我有一个谷歌的例子,它登录和注销没有任何问题,就像我的应用程序一样。谁能说出哪里可能是错的?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 00:14:34

花了两天时间才找到一个愚蠢的错误。当您扩展BaseGameActivity时,请确保在activity方法中调用它的所有方法(如果您覆盖它们),例如:

代码语言:javascript
复制
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
 super.onActivityResult(requestCode, resultCode, data);
 ....
 <our code here>
}

BaseGameActivity调用它的聚合mHelper的方法,这些方法完成了所有的魔术。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16802775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档