从Google Fit API获取睡眠数据

时间:2018-09-10 15:42:12

标签: android google-fit google-fit-sdk

最近几天我一直在尝试从Google Fit API中获取睡眠信息。

在这段时间内,我设法从历史记录API和会话API获取数据,但活动列表似乎并未包含任何睡眠数据。

我一直在“ Sleep as Android”中捕获数据,并且还尝试了“ Instant”。但看不到数据集中的任何内容。

我似乎还记得使用旧版健身应用时会看到睡眠活动,但是新应用的日志部分中没有数据提示。

我应该能够从历史记录或会话数据中获取数据吗?

此刻我正在使用

DataReadRequest readRequest = new DataReadRequest.Builder()
   .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
   .read(DataType.TYPE_ACTIVITY_SEGMENT)
   .build();

Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(context))
   .readData(readRequest)
   .addOnSuccessListener(new OnSuccessListener<DataReadResponse>(){
       @Override
       public void onSuccess(DataReadResponse dataReadResponse) {
           List<DataSet> dataSets = dataReadResponse.getDataSets();
           for (DataSet dataSet : dataSets) {
                for (DataPoint dp : dataSet.getDataPoints()) {
                   for (Field field : dp.getDataType().getFields()){
                      LogUtil.d("google fit Start: " + dateFormat.format(dp.getStartTime(TimeUnit.MILLISECONDS)) + " " + timeFormat.format(dp.getStartTime(TimeUnit.MILLISECONDS)) + " End: " + dateFormat.format(dp.getEndTime(TimeUnit.MILLISECONDS)) + " " + timeFormat.format(dp.getEndTime(TimeUnit.MILLISECONDS)) + " type: " + showDataType(dp.getValue(field)));
                  }
              }
          }
      }
  }

我不确定要获得正确的数据会缺少什么。我看到走路,静止不动,跑步等,但没睡!

1 个答案:

答案 0 :(得分:0)

您可以尝试发送会话请求,该请求将读取Users.sessions或使用\s方法正确record fitness data进行睡眠activities

活动列表:

  • 睡觉72
  • 轻度睡眠109
  • 深度睡眠110
  • REM睡眠111

这是Martin Stava的sample代码,它将向您展示如何使用Google Fit中的Sleep作为Anroid数据。希望对您有所帮助。