Uyku, sleep
türündeki oturumlar ile temsil edilir.
Oturumlar isteğe bağlı olarak uyku verileriyle ilgili daha ayrıntılı bilgiler içeren uyku aşamaları içerebilir. Örneğin, hafif, derin veya REM uykusuysa:
Uyku evresi değerleri
Uyku evresi türü | Değer |
---|---|
Uyanma (uyku döngüsü sırasında) | 1 |
Uyku | 2 |
Yatak dışı | 3 |
Hafif uyuma | 4 |
Derin uyuma | 5 |
REM | 6 |
Uyku verilerini yazma rehberi, 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 örneklerde, her iki durumda da Fit'ten veri almak için bir SessionClient kullanılı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 kullanarak uyku seansları alma iki aşamadan oluşur:
Oturum listesini alın
activityType
parametresini72
(SLEEP
) olarak ayarlayın. Not: Önceki istekten sonra yeni oturumlar almak içinstartTime
veendTime
kullanabilir veya pageToken kullanabilirsiniz.HTTP yöntemi
GET
URL isteyin
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 bir Oturum yanıtı şunlar 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 oturum için (varsa) uyku aşamalarının ayrıntılarını almak üzere filtrelenmiş listedeki her oturum için aşağıdaki isteği kullanın:
HTTP yöntemi
POST
URL isteyin
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 durumu kodu alırsınız. Yanıt gövdesi, uyku oturumunu oluşturan etkinlik segmentlerinin JSON temsilini içerir. HerintVal
, uyku etkinliği 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": [] } ] } ] } ] } ] }