gpt4 book ai didi

android - Google Plus 跨平台单点登录 : onConnected never called in a fresh install

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:01 25 4
gpt4 key购买 nike

我正尝试在我的 Android 应用中使用 Google Plus 实现“跨设备登录”。

如何实现这个没有很好的文档记录,我找到的最好的文档是 this video , and these sample apps在 github 上。

给定 sample Android app 的代码, 和 what the Google developers say in the video ,我知道会发生以下情况:

  1. 我在设备 A 上安装并启动了该应用。该设备只有一个 Google 帐户,从未登录过该应用。

  2. onCreate() 将调用 PlusClient#connect()。由于用户从未在另一台设备上登录,我们将收到 onConnectionFailed()。

  3. 如果用户点击登录按钮,我们将执行 mLastConnectionResult.startResolutionForResult(),这将执行一个 PendingIntent,向用户请求许可。

  4. 现在我们的用户已授予权限,对 PlusClient#connect() 的新调用将导致 onConnected()。

  5. 现在,我们在设备 B 上安装该应用程序。该设备只有一个 Google 帐户,与设备 B 相同。

  6. 在 onCreate() 中我们将启动 PlusClient#connect()

  7. 由于同一 Google 帐户之前在另一台设备上授予了同一组权限/范围,因此将调用 onConnected()。

在前面的序列中,第 7 点没有发生。即时连接永远不会发生。确实,如果我执行 mLastConnectionResult.startResolutionForResult(),它会在不再次询问相同权限的情况下进行连接,但如果应用刚刚安装,从 onCreate 触发的连接将导致 onConnectionFailed()。

我不确定我是不是理解错了,它不是那样工作的(但这是我从视频中了解到的),或者它只是没有按预期工作。

任何帮助将不胜感激。

谢谢。

注意事项:- 该应用程序已在 Google Play 开发者控制台中正确设置- 我在两个不同的客户端请求完全相同的范围,因为它实际上是同一个应用程序- 两台设备只有一个 Google 帐户。- 我正在使用 github 中的示例应用程序运行此实验

最佳答案

我也曾为此苦苦挣扎,结果发现跨平台 SSO 仅在您的应用程序首次打开时(安装后首次运行)才会被检查。清除 Google Play 服务的缓存和数据对我有用。

关于android - Google Plus 跨平台单点登录 : onConnected never called in a fresh install,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com