我在使用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控制台中注册(这是一个问题吗?)。
任何指示赞赏。
答案 0 :(得分:0)
我发现了它没有登录的原因。 请求代码必须在两个应用程序中相同 - 在手机和手表上,可能是因为它们在同一个包中,并且两个请求都相同。
现在我可以登录了。