如何解决观察Google健身记录中的数据更改
我正在使用Googlefit android SDK收集登录并获得适当权限的用户的数据。当用户注册时,我们将调用提供的history API来收集数据,如下所示。
DataReadRequest dataReadRequest = new DataReadRequest.Builder()
.read(HealthDataTypes.TYPE_BLOOD_PRESSURE)
.setTimeRange(1,currentDateTime,TimeUnit.MILLISECONDS)
.setLimit(1000)
.enableServerQueries()
.build();
fitness.getHistoryClient(this,getGoogleAccount())
.readData(dataReadRequest)
.addOnSuccessListener {
@Override
public void onSuccess(DataReadResponse dataReadResponse) {
if (dataReadResponse.getBucket().size() > 0) {
for (Bucket bucket: response.getBuckets()) {
for (DataSet dataSet: bucket.getDataSets()) {
DateFormat dateFormat = getTimeInstance();
for (DataPoint dp: dataSet.getDataPoints()) {
Log.i(TAG,"Data point:");
Log.i(TAG,"\tType: " + dp.getDataType().getName());
for (Field field: dp.getDataType().getFields()) {
Log.i(TAG,"\tField: " + field.getName());
Log.i(TAG,"\tValue: " + dp.getValue(field));
}
}
}
}
}
}
}
这可以正常工作,以便首次获取用户的全部历史记录。 第一次之后,要求是在过去收集的数据中发生更新时,始终使我的本地数据库保持更新。我已经尝试了以下代码。
DataUpdateListenerRegistrationRequest.Builder builder = new DataUpdateListenerRegistrationRequest.Builder();
builder.setPendingIntent(pendingIntent);
if(dataSource != null) { builder.setDataSource(dataSource); }
if(dataType != null) { builder.setDataType(dataType); }
这有助于仅跟踪活动/值的有限类型。即使使用上面的代码片段,也无法访问HealthDataTypes.TYPE_BLOOD_PRESSURE。
还有其他方法可以使用此数据吗? 有没有人想保留Google Fit历史记录的可更新本地副本? 是否可以为此订阅任何可观察/回调?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。