【问题标题】:Can't connect to Google Fitness API on WearOS无法连接到 WearOS 上的 Google Fitness API
【发布时间】:2018-04-19 13:50:36
【问题描述】:

我在从 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" />

我在手机上使用了类似的过程,它可以工作。 两个应用程序(移动和穿戴)都在 Google API 控制台中注册,使用相同的 OAuth2 凭据(有问题吗?)。

任何指针表示赞赏。

【问题讨论】:

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


    【解决方案1】:

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

    所以现在我可以登录了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多