我正在为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! 我认为有一些缓存在行动。但现在已经好几个小时了,它一直在努力。
有人知道为什么?这怎么可能?
谢谢!
答案 0 :(得分:0)
在logcat中显示间歇性连接失败和关联的UNKNOWN_ERROR(5000)(前面还有“用户可恢复的auth异常:btx:NeedPermission”),这是Android Wear 2.0的错误,您可以在此处阅读:{{ 3}} 相同的代码在Android Wear 1.5中完美运行