Le sommeil est représenté par le nombre de sessions.
de type sleep
.
Les sessions peuvent éventuellement comporter des phases de sommeil, qui donnent des détails plus précis
sur les données de sommeil. Par exemple, s'il était léger, profond ou paradoxal
sommeil:
Valeurs des phases de sommeil
Type de phase de sommeil | Valeur |
---|---|
Éveillé (pendant le cycle de sommeil) | 1 |
Sommeil | 2 |
Sortir du lit | 3 |
Sommeil léger | 4 |
Sommeil profond | 5 |
Sommeil paradoxal | 6 |
Le guide Écrire les données de sommeil montre comment Les données sur le sommeil, granulaires ou non, sont représentées dans Fit.
Android
Les exemples suivants utilisent un objet SessionClient pour récupérer des données depuis Fit, dans les deux cas.
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
La récupération des sessions de sommeil à l'aide de l'API REST est un processus en deux étapes:
Récupérer une liste de sessions définissez le paramètre
activityType
sur72
(SLEEP
). Remarque: Vous pouvez utiliser unstartTime
et unendTime
, ou un pageToken pour récupérer les nouvelles sessions depuis la requête précédente.Méthode HTTP
GET
URL de la requête
https://www.googleapis.com/fitness/v1/users/me/sessions?startTime=2019-12-05T00:00.000Z&endTime=2019-12-17T23:59:59.999Z&activityType=72
Réponse
Exemple de Session la réponse pourrait être:
{ "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" }
Pour obtenir des informations sur les phases de sommeil de chaque session (le cas échéant), utilisez le requête suivante pour chaque session de la liste filtrée:
Méthode HTTP
POST
URL de la requête
https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate
Corps de la requête
{ "aggregateBy": [ { "dataTypeName": "com.google.sleep.segment" } ], "endTimeMillis": 1575609060000, "startTimeMillis": 1575591360000 }
Réponse
Si votre requête a abouti, vous recevrez une réponse HTTP
200 OK
dans l'état du code source. Le corps de la réponse contient une représentation JSON de l'activité. qui composent la session de sommeil. ChaqueintVal
représente type d'activité de sommeil{ "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": [] } ] } ] } ] } ] }