Uyku, sleep türünde oturumlarla temsil edilir.
Oturumlar isteğe bağlı olarak uyku verileri hakkında daha ayrıntılı bilgiler içeren uyku aşamalarını içerebilir. Örneğin, hafif, derin veya REM uykusu:
Uyku evresi 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ılavuzunda, hem ayrıntılı hem de ayrıntılı olmayan uyku verilerinin Fit'te nasıl gösterildiği açıklanmaktadır.
Android
Aşağıdaki örneklerde, her iki durumda da Fit'ten veri almak için 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'yi kullanarak uyku oturumlarını alma işlemi iki aşamadan oluşur:
Oturum listesini alma
activityTypeparametresini72(SLEEP) olarak ayarlayın. Not: Önceki istekten bu yana yeni oturumları almak içinstartTimeveendTimekullanabilir veya 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=72Yanıt
Örnek bir Oturum yanıtı şu şekilde 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 oturumun uyku aşamalarıyla ilgili ayrıntıları (varsa) almak 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ı olursa
200 OKHTTP yanıt durum kodu alırsınız. Yanıt gövdesinde, uyku seansını oluşturan etkinlik segmentlerinin JSON gösterimi bulunur. 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": [] } ] } ] } ] } ] }