שינה מיוצגת על ידי סשנים
מסוג sleep
.
סשנים יכולים לכלול שלבי שינה, שכוללים פרטים מפורטים יותר.
על נתוני שינה. לדוגמה, אם הוא היה קל, עמוק או REM
שינה:
הערכים של שלבי השינה
סוג שלב השינה | ערך |
---|---|
ערות (במהלך מחזור השינה) | 1 |
שינה | 2 |
מחוץ למיטה | 3 |
שינה קלה | 4 |
שינה עמוקה | 5 |
שנת חלום (REM) | 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
אחזור של סשנים של שינה באמצעות API ל-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": [] } ] } ] } ] } ] }