最近几天我一直试图从谷歌适配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)));
}
}
}
}
}
我不确定我缺少什么来获取正确的数据。我看到行走,静止,跑步等,但只是没有睡觉!
您可以尝试发送会话请求,该会话请求将读取dataType.TYPE_ACTIVITY_SEGMENT
或使用Users.sessions
方法正确record fitness data睡眠activities。
活动清单:
以下是来自Martin Stava的sample代码,它将向您展示如何使用Sleep作为来自Google Fit的Anroid数据。希望能帮助到你。