Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 观察Google Fit历史记录中的数据变化_Java_Android_Kotlin_Google Fit - Fatal编程技术网

Java 观察Google Fit历史记录中的数据变化

Java 观察Google Fit历史记录中的数据变化,java,android,kotlin,google-fit,Java,Android,Kotlin,Google Fit,我正在使用Googlefit android SDK收集用户的数据,这些用户已登录并获得了适当的权限。当用户注册时,我们将调用提供的来收集数据,如下所示 DataReadRequest dataReadRequest = new DataReadRequest.Builder() .read(HealthDataTypes.TYPE_BLOOD_PRESSURE) .setTimeRange(1, currentDate

我正在使用Googlefit android SDK收集用户的数据,这些用户已登录并获得了适当的权限。当用户注册时,我们将调用提供的来收集数据,如下所示

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_血压也无法访问,无法使用上述代码段侦听更改

我们还有其他方法可以使用这些数据吗? 有没有人想到要保存一份可更新的google fit历史本地副本? 是否有任何可观测/回调可供订阅