我从 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 凭据(有问题吗?)。
任何指针表示赞赏。