【问题标题】:Google Fit API authentication weirdnessGoogle Fit API 身份验证异常
【发布时间】:2017-07-02 21:42:01
【问题描述】:

我正在为 Android Wear 开发一些表盘(minSdkVersion=21 和 targetSdkVersion=23)并集成适用于 Android 的 Google Fit API。

如您所知,要在应用中使用适用于 Android 的 Google Fit API,您需要一个适用于 Android 应用的 OAuth 2.0 客户端 ID。 因此,我转到 Google API 控制台上的 API 访问页面,使用 Android Studio (v 2.2.3) 调试证书 SHA-1 指纹和我的测试表盘的包名称创建了 OAuth 客户端和客户端 ID。我按照这里的所有说明进行操作:https://developers.google.com/fit/android/get-api-key

然后我在我的表盘中实现了权限请求和身份验证步骤、订阅、侦听器等。一切顺利。已请求并成功授予授权,表盘正常工作,正确访问和显示健身数据。

这是在早上。然后,突然,在下午,健身数据停止在表盘上更新。累积距离现在显示 0.00 米,而就在前一分钟,它与手机 Google Fit 应用程序上显示的信息完全同步。并且一个 UNKNOWN_ERROR (5000) 开始显示在 Android Studio 内的 Android 监视器中。

我(干净)重建了表盘,从手表中卸载,删除了 Google API 控制台上的凭据并重新开始。它再次奏效了。无需更改一行代码。 这给我留下了一种不舒服的感觉。如果您是开发人员,您就会知道我在说什么:代码有效。但是怎么做呢?

所以我尝试了一些不同的东西。我在控制台中禁用了 Fitness API 并删除了表盘的 OAuth 客户端和客户端 ID。我什至从手机和手表上卸载了 Google Fit。 我再次从手表上卸载了表盘,重新构建并重新安装。当我启动它时,它要求正确的 Google Fit API 授权。

它奏效了。表盘进行身份验证并接收健身数据。没有实际的 OAuth 客户端和客户端 ID! 我认为有某种缓存在起作用。但现在已经几个小时了,它还在继续工作。

有人知道为什么吗?这怎么可能?

谢谢!

【问题讨论】:

  • 您可以使用github.com/googlesamples/android-WatchFace 作为Android Studio 项目。实际的 Google Fit 累积距离表盘位于 FitDistanceWatchFaceService.java 中。当然,您还必须在 Google API 控制台中创建一组 OAuth 凭据。我认为我的问题更多是关于倾听那些在身份验证过程中有相同经验的人,如果他们有任何类似的问题以及他们是如何解释的。
  • 如果对您有帮助,请查看SO question
  • 谢谢KENdi,这正是我正在寻找的解释。它确认我发现的异常确实存在并解释了原因。

标签: android api oauth google-fit


【解决方案1】:

结果显示在 logcat 中的间歇性连接失败和相关的 UNKNOWN_ERROR (5000)(前面还有“用户可恢复的身份验证异常:btx:NeedPermission”),是 Android Wear 2.0 的一个错误,您可以在此处阅读:@987654321 @ 相同的代码在 Android Wear 1.5 中运行良好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-16
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2012-01-07
    相关资源
    最近更新 更多