观察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 (将#修改为@)