[google-fit];将血糖数据写入Google Fit,但在测试过程中出了点问题REQUIRES_APP_WHITELISTING

问题描述

已成功获取“ OAuth 2.0客户端ID”,但未验证“ OAuth同意Scree”

fitnessOptions fitnessOptions = fitnessOptions.builder()
                .addDataType(HealthDataTypes.TYPE_BLOOD_gluCOSE,fitnessOptions.ACCESS_WRITE)
                .addDataType(HealthDataTypes.TYPE_BLOOD_gluCOSE,fitnessOptions.ACCESS_READ)
                .build();
DataSource mDataSource = new DataSource.Builder()
                    .setStreamName("test")
                    .setAppPackageName(context)
                    .setDataType(HealthDataTypes.TYPE_BLOOD_gluCOSE)
                    .setType(DataSource.TYPE_DERIVED)
                    .build();
DataPoint bloodglucose = DataPoint.builder(mDataSource)
                .setField(HealthFields.FIELD_BLOOD_gluCOSE_LEVEL,15)
                .setTimestamp(Now.getTimeMillis(),TimeUnit.MILLISECONDS)
                .build();
DataSet dataSet = DataSet.builder(mDataSource)
                .add(dataPoint)
                .build();
Task<Void> response = fitness
                .getHistoryClient(context,GoogleSignIn.getAccountForExtension(context,fitnessOptions))
                .insertData(dataSet);

我已通过GoogleSignIn权限,并且在插入数据时发生了异常( com.google.android.gms.common.api.ApiException:5024

请参阅:[https://developers.google.com/fit/scenarios/write-blood-glucose-data] 不允许用户写血糖信息了吗?或我的代码有问题。

如果您能根据您的丰富经验给我们一些建议,我将不胜感激。

解决方法

可能有点晚了,但如果其他人遇到这种情况,以下内容可能会有所帮助。

来自 Google 健身文档:

Google 健身具有用于与管理相关的测量的健康数据类型 一般健康(与健身相反)。因为健康数据可以 敏感,这些数据类型具有敏感范围。这意味着你需要 为敏感范围申请 OAuth API 验证 Android 和 REST 的标准授权权限来读取和 写入这些数据类型。

Google 将审核您的申请并批准或拒绝验证。 用户将审查范围请求并授予或拒绝访问 这些。

注意:Google 已暂时停止接受写入健康数据类型的新请求。我们正在更新我们的政策和流程 审查请求,并会在我们再次更新此文档时 简历。

截至 2021 年 6 月 1 日。

https://developers.google.com/fit/datatypes/health