最近我在我的应用程序中添加了Google Play Game服务支持(添加了BaseGameActivity和GameHelper),并且它的登录和注销流程工作正常。在我的图形线程中,我向主活动处理程序发送消息,它调用beginUserInitiatedSignIn或signOut。当识别过程完成时,Game Helper会调用我的活动的onSignInFailed或onSignInSucceeded,并且我可以检查isSignedIn(如果onSignInSucceeded被调用,则为true)。
但是今天我发现它表现很奇怪。可悲的是我没有备份最后一个工作版本,但实质代码是相同的。
如果我要求应用程序登录,它会显示Google服务登录对话框(我的设备上有2个帐户)。我选择一个帐户,按下确定,它返回到我的应用程序,但既不调用onSignInSucceeded也不调用onSignInFailed(之前如果我取消此对话框,我会看到“未知错误”消息)。当我尝试第二次登录时,它启动旋转的圆圈并无限等待。如果我点击屏幕,它会终止等待并返回到我的视图。
尽管如此,如果我关闭应用并再次启动它,它将成功登录,调用onSignSucceded并在运行时保持连接。它说:
如果我退出登录,然后再尝试登录,它会显示账户对话框,并写着:
当我点击屏幕时,圆圈会中止,而不会调用onSignInSucceeded或onSignInFailed等函数。
我无法想象出了什么问题。处理程序是在主线程上创建的。我有谷歌的示例,它可以登录和注销,没有任何问题,就像我的应用程序一样。有人能告诉我可能出了什么问题吗?谢谢!
但是今天我发现它表现很奇怪。可悲的是我没有备份最后一个工作版本,但实质代码是相同的。
如果我要求应用程序登录,它会显示Google服务登录对话框(我的设备上有2个帐户)。我选择一个帐户,按下确定,它返回到我的应用程序,但既不调用onSignInSucceeded也不调用onSignInFailed(之前如果我取消此对话框,我会看到“未知错误”消息)。当我尝试第二次登录时,它启动旋转的圆圈并无限等待。如果我点击屏幕,它会终止等待并返回到我的视图。
尽管如此,如果我关闭应用并再次启动它,它将成功登录,调用onSignSucceded并在运行时保持连接。它说:
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!
如果我退出登录,然后再尝试登录,它会显示账户对话框,并写着:
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服务。 当我尝试重新登录时,它会显示无限旋转的圆圈,并显示以下内容:
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.
当我点击屏幕时,圆圈会中止,而不会调用onSignInSucceeded或onSignInFailed等函数。
我无法想象出了什么问题。处理程序是在主线程上创建的。我有谷歌的示例,它可以登录和注销,没有任何问题,就像我的应用程序一样。有人能告诉我可能出了什么问题吗?谢谢!