请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

java - Google Play 游戏服务 : strange sign in behavior

[复制链接]
菜鸟教程小白 发表于 2022-11-6 16:15:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

但今天我发现它现在的行为很奇怪。遗憾的是我没有备份最后一个工作版本,但本质代码是一样的。

如果我要求应用登录,它会显示谷歌服务登录对话框(我的设备上有 2 个帐户)。我选择了一个帐户,按确定,它返回到我的应用程序,但既没有调用 onSignInSucceeded 也没有调用 onSignInFailed(之前如果我取消此对话框,我会看到“未知错误”消息)。当我第二次尝试登录时,它会启动一个旋转圆圈并无休止地等待。如果我点击屏幕,它会中止等待并返回我的 View 。

尽管我关闭应用程序并再次启动它,但它会在启动时成功登录,调用 onSignSucceded 并在我 checkin 运行时保持连接。它说:

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.

当我选择一个帐户时,它会返回到我的 Activity 中,并且不会调用 onSignInSucceeded 和 onSignInFailed。如果我 checkin 运行时,我会看到该应用未连接到谷歌服务。 当我再次尝试登录时,它会显示永远旋转的圆圈并说:

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 等等。

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



Best Answer-推荐答案


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

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
 super.onActivityResult(requestCode, resultCode, data);
 ....
 <our code here>
}

BaseGameActivity 调用其聚合的 mHelper 方法来完成所有的魔法。

关于java - Google Play 游戏服务 : strange sign in behavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16802775/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap