无法连接到WearOS上的Google Fitness API

时间:2018-04-19 13:50:36

标签: android google-fit android-wear-2.0 wearables

我在使用WearOS设备连接Google Fitness API时遇到问题。 我想用手表记录Google Fit的心率。 我想我的权限有问题:

  • 我构建了一个FitnessOptions对象,列出了所需的数据类型。 - onCreate()

    fitnessOptions = FitnessOptions.builder()
        .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
        .build();
    
  • 我会根据需要请求权限,否则请尝试连接 - onResume()

    if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
        Log.d(TAG, "Will request permissions.");
        GoogleSignIn.requestPermissions(
                this, // your activity
                GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
                GoogleSignIn.getLastSignedInAccount(this),
                fitnessOptions);
    } else {
        Log.d(TAG, "Will access google fit.");
        accessGoogleFit();
    }
    

在这里我遇到了一个问题:GoogleSignIn启动一项活动并要求我按预期登录。我选择帐户,结束登录活动并恢复我的活动。我仍然没有权限,因为它再次提示我登录。

在我的清单文件中:

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.BODY_SENSORS" />

我在手机上使用了类似的过程,但它确实有效。 这两个应用程序(移动设备和服装)都使用相同的OAuth2凭据在Google API控制台中注册(这是一个问题吗?)。

任何指示赞赏。

1 个答案:

答案 0 :(得分:0)

我发现了它没有登录的原因。 请求代码必须在两个应用程序中相同 - 在手机和手表上,可能是因为它们在同一个包中,并且两个请求都相同。

现在我可以登录了。