从Google fit API获取睡眠数据

问题描述 投票:2回答:1

最近几天我一直试图从谷歌适配API获取睡眠信息。

我已设法从历史API和会话API获取该时间段的数据,但活动列表似乎不包含任何睡眠数据。

我一直在捕捉“睡眠为Android”中的数据,我也试过“即时”。但是没有看到数据集中的任何内容回来。

我似乎记得使用较旧的适合应用程序,我会看到显示的睡眠活动,但新应用程序的日志部分中没有数据的迹象。

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

目前我正在使用

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)));
                  }
              }
          }
      }
  }

我不确定我缺少什么来获取正确的数据。我看到行走,静止,跑步等,但只是没有睡觉!

android google-fit google-fit-sdk
1个回答
0
投票

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

活动清单:

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

以下是来自Martin Stava的sample代码,它将向您展示如何使用Sleep作为来自Google Fit的Anroid数据。希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.