שינה מיוצגת על ידי סשנים
מסוג 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": [] } ] } ] } ] } ] }
