我对 Google SDK 有点陌生,我正在尝试在我的应用中实现一个 Google 登录按钮,以便用户可以使用他们的 Google 帐户登录。我添加了SignInButton
一个对象并处理了基本身份验证流程PlusClient
。我还使用AsyncTask
来获取 Auth Token GoogleAuthUtil
。一旦我成功获得令牌,我就会打电话LoginActivity.finish()
并允许访问我的应用程序。
当我单击时,SignInButton
我得到以下信息:
- 提示一个窗口在我的谷歌帐户之间进行选择。
- 一个权限屏幕,要求我确认此应用是否想知道您的姓名、基本信息等。我单击“确定”。
- 一个奇怪的通知警告图标(内部带有感叹号的三角形),上面写着“登录请求”
- 单击通知后,我会看到一个快速的“正在登录..”屏幕几秒钟,然后返回到第 2 步 - 我再次单击“确定”。
- 再次单击登录按钮使我成功登录。
这个流程显然不是应该的,所以我的问题是:
- 为什么我会出现两次请求权限屏幕?而且每次我尝试登录?
- 如何摆脱那个奇怪的警告通知并在完成后登录?
将 Android SDK v4.2 与 Play Services SDK v10 一起使用
编辑
好吧,这是一个愚蠢的问题,但我还没有完全弄清楚。事实证明,GoogleAuthUtil.getTokenWithNotification
如果该方法因可恢复的操作而失败,我正在使用它发送推送通知。所以我把它改回来了GoogleAuthUtil.getToken
,现在我以编程方式恢复它更好。但是我仍然得到干预屏幕,一次是在我尝试连接时拨打result.startResolutionForResult
内部电话,第二次是在拨打电话后拨打电话。这还是个谜……onConnectionFailed(ConnectionResult result)
startActivityForResult
GoogleAuthUtil.getToken
编辑 2
关于提示给用户的重复权限的第一个问题(上面回答了第二个问题)在此处讨论