Android Wear 访问 Google Fit API

标签 android wear-os google-api-client google-fit android-wear-2.0

我正在尝试访问 Android Wear 上的 Google Fit API 以获得用户目标,但我遇到了后续问题。

//我在 Android Wear 2.0 模拟器上运行。

如果在 Builder 中没有指定帐户(通过 setAccountName),我得到 “无效帐户”错误消息。

如果我手动设置我收到的帐户名

"com.android.tools.fd.runtime.BootstrapApplication has problem with availability of google play services. Try again.".

我使用了下面的代码来做到这一点:

     mClient = new GoogleApiClient.Builder(this)
                    .addApi(Fitness.GOAL_API)
                    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
                    .addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
                    .addConnectionCallbacks([...])
                    .addOnConnectionFailedListener(
                        new GoogleApiClient.OnConnectionFailedListener() {
                            @Override
                            public void onConnectionFailed(ConnectionResult result) {
                                    if (result.hasResolution()) {
                                        try {
                             result.startResolutionForResult(ConfigAccount.this, request_code);
                                        } catch (IntentSender.SendIntentException e) {
                                            e.printStackTrace();
                                        }
                                    } else {
    GoogleApiAvailability.getInstance().getErrorDialog(ConfigAccount.this, result.getErrorCode(), request_code_error, new DialogInterface.OnCancelListener() {})
                    .build();

每次 onConnectionFailed() 中的 result.resolution 为 null。 错误代码为 5005 - UNKNOWN_AUTH_ERROR 因为分辨率为空,所以 startResolutionOnResult 和 enableAutoManage 不起作用。

凭据应该没问题。 提出的方法适用于装有 Android 5.1 的手机。

播放服务版本为9.8.0。 降级版本没有帮助。

有什么想法可以实现我的目标吗? 谢谢。

最佳答案

来自 FitnessStatusCodes documentation错误代码为 5005 - UNKNOWN_AUTH_ERROR 是一个状态代码,表示在尝试获取 OAuth token 时发生未知错误。因此,请确保正确获取 OAuth token 。

如果您的应用程序未在 Google 开发者控制台中正确注册,则会发生此错误的另一个可能原因。

在这个 thread 中有说明您可能已经使用生产 keystore 证书指纹 (SHA1) 在 Google 开发者控制台上注册了应用程序,而您正在使用具有调试 keystore 的应用程序对其进行测试。

这是您需要执行的步骤。

  • 使用调试 keystore 证书指纹 (SHA1) 再创建一个客户端 ID。
  • 卸载现有应用。
  • 安装应用并连接到 Google fit。
  • 检查 google fit 应用并确保您的应用被列为连接的应用(... > 设置 > 连接的应用 > 连接的应用和设备

有关更多信息,请查看此 thread还有这个SO question .

关于Android Wear 访问 Google Fit API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589662/

相关文章:

android - 如何使用移动模块中的类?

python-3.x - 使用python(google api)从gmail中的自定义标签读取邮件

node.js - Nodejs错误: "User does not have sufficient permissions for this profile "

android - OAuth 请求 token = android 应用程序中的 null

android - 为什么在页面之间滑动时 TabLayout 的选项卡图标/文本会闪烁?

android - 将数据从 onReceive 传递到新 Activity

java - 在 Eclipse 中打包 Android Wear 应用

wear-os - 有什么可以提高Wearable.MessageApi.sendMessage 的可靠性的吗?它和猫一样稳定

android - android中的自定义 ListView

javascript - 重复规则错误 400 错误请求 - Google Api 日历