его предоставление списка сеансов, но не предоставлять набор данных для сна и всего. {< /p>
Код: Выделить всё
Calendar cal = Calendar.getInstance();
Date now = new Date();
cal.setTime(now);
long endTime = cal.getTimeInMillis();
cal.add(Calendar.DAY_OF_MONTH, -1);
long startTime = cal.getTimeInMillis();
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(requireContext());
Log.i(TAG, "SLEEP Range Start: " + dateFormat.format(startTime));
Log.i(TAG, "SLEEP Range End: " + dateFormat.format(endTime));
SessionReadRequest request = new SessionReadRequest.Builder()
.readSessionsFromAllApps()
.includeSleepSessions()
.read(DataType.TYPE_SLEEP_SEGMENT)
.setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
Fitness.getSessionsClient(requireContext(),getGoogleSigningAccount())
.readSession(request)
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(SessionReadResponse sessionReadResponse) {
for (int i = 0; i < sessionReadResponse.getSessions().size(); i++) {
Session session = sessionReadResponse.getSessions().get(i);
// If the sleep session has finer granularity sub-components, extract them:
List dataSets = sessionReadResponse.getDataSet(session);
for (int j = 0; j < dataSets.size(); j++) {
DataSet mDataSet = dataSets.get(j);
for (DataPoint point : mDataSet.getDataPoints()) {
String sleepStageVal = "" + point.getValue(Field.FIELD_SLEEP_SEGMENT_TYPE).asInt();
long segmentStart = point.getStartTime(TimeUnit.MILLISECONDS);
long segmentEnd = point.getEndTime(TimeUnit.MILLISECONDS);
Log.i(TAG, "\t* Type $sleepStage between $segmentStart and $segmentEnd" + segmentStart + "" + segmentEnd);
}
}
}
}
});}"
Подробнее здесь: https://stackoverflow.com/questions/730 ... sleep-data