Uyku, sleep
türündeki oturumlar ile temsil edilir.
Seanslar isteğe bağlı olarak uyku aşamaları içerebilir. Bu aşamalarda uyku verileri hakkında daha ayrıntılı ayrıntılar yer alır. Örneğin hafif, derin veya REM uykusu ise:
Uyku aşaması değerleri
Uyku evresi türü | Değer |
---|---|
Uyanık (uyku döngüsü sırasında) | 1 |
Uyku | 2 |
Yatak dışında | 3 |
Hafif uyuma | 4 |
Derin uyuma | 5 |
REM | 6 |
Uyku verilerini yazma kılavuzu, hem ayrıntılı hem de ayrıntılı olmayan uyku verilerinin Fit'te nasıl temsil edildiğini gösterir.
Android
Aşağıdaki örnekler her iki durumda da Fit'ten veri almak için bir SessionClient kullanır.
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
REST API'yi kullanarak uyku seansları almak iki aşamalı bir işlemdir:
activityType
parametresini72
(SLEEP
) olarak ayarlayan oturumların listesini alın. Not:startTime
veendTime
kullanabilir ya da önceki istekten sonraki yeni oturumları almak için pageToken kullanabilirsiniz.HTTP yöntemi
GET
İstek URL'si
https://www.googleapis.com/fitness/v1/users/me/sessions?startTime=2019-12-05T00:00.000Z&endTime=2019-12-17T23:59:59.999Z&activityType=72
Yanıt
Örnek Oturum yanıtı şöyle olabilir:
{ "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" }
Her oturumda (varsa) uyku aşamalarının ayrıntılarını öğrenmek için filtrelenmiş listedeki her oturum için aşağıdaki isteği kullanın:
HTTP yöntemi
POST
İstek URL'si
https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate
İstek metni
{ "aggregateBy": [ { "dataTypeName": "com.google.sleep.segment" } ], "endTimeMillis": 1575609060000, "startTimeMillis": 1575591360000 }
Yanıt
İsteğiniz başarılı olduysa
200 OK
HTTP yanıt durum kodu alırsınız. Yanıt gövdesi, uyku seansını oluşturan aktivite segmentlerinin JSON temsilini içerir. HerintVal
uyku etkinlik türünü temsil eder{ "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": [] } ] } ] } ] } ] }