يتم تمثيل سمة "النوم" من خلال الجلسات.
من النوع sleep
.
يمكن أن تتضمّن الجلسات، بشكل اختياري، مراحل نوم تحتوي على تفاصيل أكثر دقة.
حول بيانات النوم. على سبيل المثال، إذا كانت الإجابة خفيفة أو عميقة أو كانت حركة العين السريعة REM.
نوم:
قيم مرحلة النوم
نوع مرحلة النوم | القيمة |
---|---|
الاستيقاظ (أثناء دورة النوم) | 1 |
النوم | 2 |
خارج السرير | 3 |
نوم خفيف | 4 |
نوم عميق | 5 |
حركة العين السريعة | 6 |
يوضّح دليل كتابة بيانات النوم كيف يمكن أن تكون ويتم تمثيل بيانات النوم الدقيقة وغير الدقيقة في Fit.
Android
تستخدم النماذج التالية دالة 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 على مرحلتَين:
استرداد قائمة بالجلسات تضبط المَعلمة
activityType
على72
(SLEEP
). ملاحظة: يمكنك استخدامstartTime
وendTime
، أو استخدام pageToken. لاسترداد الجلسات الجديدة منذ الطلب السابق.طريقة HTTP
GET
عنوان URL للطلب
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": [ { "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
عنوان URL للطلب
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": [] } ] } ] } ] } ] }