使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白

Posted

技术标签:

【中文标题】使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白【英文标题】:OAuth consent screen blank in android app with Google Fit 【发布时间】:2021-04-20 11:18:03 【问题描述】:

我正在尝试在我的应用程序中使用 Google Fit API,在提示用户选择 Google 帐户后,应显示 OAuth 同意屏幕,但是我只得到一个带有无限加载指示器的空白弹出窗口,这个弹出窗口除非我取消它,否则将保持这种状态。

Image of the popup

不显示错误消息,只有当我取消登录流程时,我才会收到取消它的错误。

我尝试过个人项目以及Google's sample proyect,其他用户也是experiencing the same issue。

正如我在该问题上所描述的,我已经在一个模拟器、华为 Pro 20 Lite 和另一台设备上使用四个不同的帐户测试了这两个应用程序,但得到了相同的结果。

在 Google Cloud Console 中也有正确的配置,使用正确的 applicationId 和 SHA1 签名密钥,我尝试了两个不同的云项目,其中一个是全新的。

启动登录流程的函数就是这个,示例应用的完整代码可以找到here

GoogleSignIn.requestPermissions(
    this,
    requestCode.ordinal,
    getGoogleAccount(), fitnessOptions)

感谢您的帮助。

【问题讨论】:

这里面临完全相同的问题,在两个不同的设备上进行了测试,使用两个不同的谷歌帐户(均作为测试人员添加),同时具有调试和发布版本/证书,所有这些都卡在同意屏幕上,没有任何错误信息。有人说我们需要在firebase项目中启用google身份验证,也试过了,没有成功。 【参考方案1】:

按照http://developers.google.com/fit/android/get-started 的说明注册 Android 客户端。

确保为您的 Cloud 项目启用 Fit API。

检查您的 Cloud 项目凭据:

确保您的凭据包名称与示例匹配。 确保包名称与 app/build.gradle 文件中的 applicationId 匹配。 确保正确输入签名证书指纹。

另外从 OAuthConsentScreen 添加测试用户并将用户类型设置为外部

【讨论】:

是的,我已经确保我满足您列出的所有要求,结果相同...【参考方案2】:

我找到了一个解决方案,这很奇怪,但无论如何它对我有用:

删除您的 Cloud 项目 使用 firebase 创建一个新项目,而不是 http://developers.google.com/fit/android/get-started 中的以下说明。 在 Firebase 项目设置中添加一个 android 应用 向其中添加 SHA1 和 SHA256。 将 google-services.json 下载到项目文件夹中的 android/app 中。 确保在常规项目设置中设置了我的“支持电子邮件”。

如果这没有帮助,也请检查Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)

GoogleSignIn 也有类似的问题

【讨论】:

我想这是一个很好的临时修复,官方文档中没有详细说明,但在谷歌解决之前,它可以工作。 这不是我们的解决方案,因为我们的项目处于生产模式......有什么想法吗?

以上是关于使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白的主要内容,如果未能解决你的问题,请参考以下文章

像 Google fit 一样的 Android 多级可扩展视图。

Android + Google Fit数据上传:错误5002-DataType的名称与软件包名称不匹配

使用 Google Fit api 时的 Google Oauth 2.0 RESULT_CANCELED

使用 Google Fit api 时的 Google Oauth 2.0 RESULT_CANCELED

使用 Google fit 从配对应用程序中读取 Wear os 手表的心率

无法获得 Google fit 应用上显示的确切步骤