नींद का डेटा पढ़ें

नींद को sleep टाइप के सेशन से दिखाया जाता है. सेशन में वैकल्पिक तौर पर नींद के चरण शामिल हो सकते हैं, जिनमें नींद के डेटा के बारे में ज़्यादा जानकारी होती है. उदाहरण के लिए, अगर यह हल्की, गहरी या आरईएम नींद वाली थी:

नींद के चरण की वैल्यू
नींद के चरण का टाइप वैल्यू
जागना (स्लीप साइकल के दौरान) 1
सोता चेहरा 2
बिस्तर में नहीं हैं 3
कच्ची नींद 4
गहरी नींद 5
आरईएम (रैपिड आई मूवमेंट) 6

नींद का डेटा लिखें गाइड से पता चलता है कि फ़िट में नींद से जुड़ा छोटा और बिना जानकारी वाला, दोनों तरह का डेटा कैसे दिखाया जाता है.

Android

दोनों मामलों में, फ़ॉलो सैंपल, Fit से डेटा पाने के लिए SessionClient का इस्तेमाल करता है.

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 का इस्तेमाल करके, नींद के सेशन दोबारा शुरू करना, दो चरणों की प्रोसेस है:

  1. activityType पैरामीटर को 72 (SLEEP) पर सेट करके सेशन की सूची फिर से पाएं. ध्यान दें: startTime और endTime का इस्तेमाल करें या पिछले अनुरोध के बाद से नए सेशन को फिर से पाने के लिए, pageToken का इस्तेमाल करें.

    एचटीटीपी वाला तरीका

    GET
    

    यूआरएल का अनुरोध करें

    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"
    }
    
  2. हर सेशन (अगर मौजूद हो) के लिए नींद के चरणों की जानकारी पाने के लिए, फ़िल्टर की गई सूची में हर सेशन के लिए इस अनुरोध का इस्तेमाल करें:

    एचटीटीपी वाला तरीका

    POST
    

    यूआरएल का अनुरोध करें

    https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate
    

    अनुरोध का मुख्य हिस्सा

    {
      "aggregateBy": [
        {
          "dataTypeName": "com.google.sleep.segment"
        }
      ],
      "endTimeMillis": 1575609060000,
      "startTimeMillis": 1575591360000
    }
    

    जवाब

    अगर आपका अनुरोध स्वीकार किया जाता है, तो आपको 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": []
            }
           ]
          }
         ]
        }
       ]
      }
     ]
    }