خواب توسط جلساتی از نوع sleep نمایش داده میشود. جلسات میتوانند به صورت اختیاری شامل مراحل خواب باشند که جزئیات دقیقتری در مورد دادههای خواب دارند. به عنوان مثال، اگر خواب سبک، عمیق یا REM بوده است:
مقادیر مرحله خواب
| نوع مرحله خواب | ارزش |
|---|---|
| بیدار (در طول چرخه خواب) | ۱ |
| خواب | ۲ |
| خارج از رختخواب | ۳ |
| خواب سبک | ۴ |
| خواب عمیق | ۵ |
| رم | ۶ |
The write sleep data guide shows how both granular and non-granular sleep data is represented in Fit.
اندروید
نمونههای زیر برای هر دو مورد از یک SessionClient برای بازیابی دادهها از Fit استفاده میکنند.
val SLEEP_STAGE_NAMES = arrayOf( "Unused", "Awake (during sleep)", "Sleep", "Out-of-bed", "Light sleep", "Deep sleep", "REM sleep" ) val request = SessionReadRequest.Builder() .readSessionsFromAllApps() // By default, only activity sessions are included, so it is necessary to explicitly // request sleep sessions. This will cause activity sessions to be *excluded*. .includeSleepSessions() // Sleep segment data is required for details of the fine-granularity sleep, if it is present. .read(DataType.TYPE_SLEEP_SEGMENT) .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS) .build() sessionsClient.readSession(request) .addOnSuccessListener { response -> for (session in response.sessions) { val sessionStart = session.getStartTime(TimeUnit.MILLISECONDS) val sessionEnd = session.getEndTime(TimeUnit.MILLISECONDS) Log.i(TAG, "Sleep between $sessionStart and $sessionEnd") // If the sleep session has finer granularity sub-components, extract them: val dataSets = response.getDataSet(session) for (dataSet in dataSets) { for (point in dataSet.dataPoints) { val sleepStageVal = point.getValue(Field.FIELD_SLEEP_SEGMENT_TYPE).asInt() val sleepStage = SLEEP_STAGE_NAMES[sleepStageVal] val segmentStart = point.getStartTime(TimeUnit.MILLISECONDS) val segmentEnd = point.getEndTime(TimeUnit.MILLISECONDS) Log.i(TAG, "\t* Type $sleepStage between $segmentStart and $segmentEnd") } } } }
استراحت
بازیابی جلسات خواب با استفاده از REST API یک فرآیند دو مرحلهای است:
لیستی از جلسات را با تنظیم پارامتر
activityTypeروی72(SLEEP) بازیابی کنید. توجه: میتوانید ازstartTimeوendTimeیا از pageToken برای بازیابی جلسات جدید از زمان درخواست قبلی استفاده کنید.روش HTTP
GETدرخواست آدرس اینترنتی
https://www.googleapis.com/fitness/v1/users/me/sessions?startTime=2019-12-05T00:00.000Z&endTime=2019-12-17T23:59:59.999Z&activityType=72پاسخ
یک نمونه پاسخ Session میتواند به صورت زیر باشد:
{ "session": [ { "id": "Sleep1575505620000", "name": "Sleep", "description": "", "startTimeMillis": "1575505620000", "endTimeMillis": "1575526800000", "modifiedTimeMillis": "1575590432413", "application": { "packageName": "com.example.sleep_tracker" }, "activityType": 72 // Sleep }, { "id": "Run2939075083", "name": "Mud", "description": "", "startTimeMillis": "1576594403000", "endTimeMillis": "1576598754000", "modifiedTimeMillis": "1576616010143", "application": { "packageName": "com.example.run_tracker" }, "activityType": 8 // Running } ], "deletedSession": [], "nextPageToken": "1576598754001" }برای به دست آوردن جزئیات مراحل خواب برای هر جلسه (در صورت وجود)، از درخواست زیر برای هر جلسه در لیست فیلتر شده استفاده کنید:
روش HTTP
POSTدرخواست آدرس اینترنتی
https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregateدرخواست بدنه
{ "aggregateBy": [ { "dataTypeName": "com.google.sleep.segment" } ], "endTimeMillis": 1575609060000, "startTimeMillis": 1575591360000 }پاسخ
اگر درخواست شما موفقیتآمیز باشد، کد وضعیت پاسخ HTTP
200 OKدریافت خواهید کرد. بدنه پاسخ شامل یک نمایش JSON از بخشهای فعالیتی است که جلسه خواب را تشکیل میدهند. هرintValنشان دهنده نوع فعالیت خواب است.{ "bucket": [ { "startTimeMillis": "1575591360000", "endTimeMillis": "1575609060000", "dataset": [ { "point": [ { "startTimeNanos": "1575591360000000000", "endTimeNanos": "1575595020000000000", "dataTypeName": "com.google.sleep.segment", "originDataSourceId": "...", "value": [ { "intVal": 4, // Light sleep "mapVal": [] } ] }, { "startTimeNanos": "1575595020000000000", "endTimeNanos": "1575596220000000000", "dataTypeName": "com.google.sleep.segment", "originDataSourceId": "...", "value": [ { "intVal": 1, // Sleep "mapVal": [] } ] }, // .... more datapoints { "startTimeNanos": "1575605940000000000", "endTimeNanos": "1575609060000000000", "dataTypeName": "com.google.sleep.segment", "originDataSourceId": "...", "value": [ { "intVal": 4, // Light sleep "mapVal": [] } ] } ] } ] } ] }