नींद का डेटा लिखें

आपका ऐप्लिकेशन, नींद से जुड़े पूरे डेटा को देख और उसमें बदलाव कर सकता है. इसमें हल्की नींद, गहरी नींद, आरईएम, और जगे रहने के चरण शामिल हैं SleepStages टाइप की सूची में शामिल है. नींद से जुड़ा डेटा लिखने के लिए, आपको एक टाइप का सेशन बनाना होगा FitnessActivities.SLEEP. नींद से जुड़ा डेटा किसी सेशन में शामिल होना चाहिए, अगर उसे उपयोगकर्ता के इस जर्नल में Google Fit ऐप्लिकेशन.

इसके अलावा, एक सेशन में SleepStages टाइप के सेगमेंट शामिल करें:

नो-ग्रैन्युलरिटी का उदाहरण

रात में नींद का पूरा डेटा लोड करने के लिए, नीचे दिया गया उदाहरण देखें. इसमें चरण की जानकारी का कोई स्तर नहीं होना चाहिए. ऐसा सेशन बनाएं जिसमें शुरू और खत्म होने का समय हो. इसके बाद, activity स्लीप मोड (कम बैटरी मोड) का इस्तेमाल करें.

Android

val fitnessOptions = FitnessOptions.builder()
    .accessSleepSessions(FitnessOptions.ACCESS_WRITE)
    .build()

// Create the sleep session
val session= Session.Builder()
    .setName(sessionName)
    .setIdentifier(identifier)
    .setDescription(description)
    .setStartTime(startTime, TimeUnit.MILLISECONDS)
    .setEndTime(endTime, TimeUnit.MILLISECONDS)
    .setActivity(FitnessActivities.SLEEP)
    .build()

// Build the request to insert the session.
val request = SessionInsertRequest.Builder()
    .setSession(session)
    .build()

// Insert the session into Fit platform
Log.i(TAG, "Inserting the session with the SessionsClient")
Fitness.getSessionsClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
    .insertSession(request)
    .addOnSuccessListener {
        Log.i(TAG,"Session insert was successful!")
    }
    .addOnFailureListener { e ->
        Log.w(TAG, "There was a problem inserting the session", e)
    }

इसके बारे में ज़्यादा जानें Android में सेशन के लिए चुनें.

आराम

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

PUT

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

https://www.googleapis.com/fitness/v1/users/me/sessions/identifier

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

{
    "id": identifier,
    "name": sessionName,
    "description": description,
    "startTimeMillis": startTime,
    "endTimeMillis": endTime,
    "version": 1,
    "lastModifiedToken": "exampleToken",
    "application": {
        "detailsUrl": "http://example.com",
        "name": "Foo Example App",
        "version": "1.0"
    },
    "activityType": 72 // Sleep
}

नींद के चरणों की जानकारी के स्तर का उदाहरण

नींद के चरणों को विवरण के स्तर के साथ लिखने के लिए, नींद के टॉप-लेवल दोनों लिखें सेशन और नींद के अलग-अलग स्टेज के लिए सेगमेंट.

नींद के सेगमेंट में बदलाव करें

इस उदाहरण में, हम नींद के अलग-अलग पहलुओं को दिखाने के लिए कई सेगमेंट लिखेंगे नींद के एक रात तक के चरण.

Android

val dataSource = DataSource.Builder()
    .setType(DataSource.TYPE_RAW)
    .setDataType(DataType.TYPE_SLEEP_SEGMENT)
    .setAppPackageName(context)
    // Optional but recommended for identifying the stream if you have multiple streams with the same dataType.
    .setStreamName(streamName)
    .build()

val dataPoints = listOf(
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime1, endTime1, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.SLEEP_LIGHT)
        .build(),
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime2, endTime2, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.SLEEP_DEEP)
        .build(),
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime3, endTime3, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.SLEEP_LIGHT)
        .build(),
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime4, endTime4, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.SLEEP_REM)
        .build(),
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime5, endTime5, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.AWAKE)
        .build(),
    DataPoint.builder(dataSource)
        .setTimeInterval(startTime6, endTime6, TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_SLEEP_SEGMENT_TYPE, SleepStages.SLEEP_LIGHT)
        .build()
)

val dataSet = DataSet.builder(dataSource)
    .addAll(dataPoints)
    .build()

आराम

  1. सबसे पहले dataSource बनाएं:

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

    POST
    

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

    https://www.googleapis.com/fitness/v1/users/me/dataSources
    

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

    {
      "dataStreamName": streamName,
      "type": "raw",
      "application": {
        "detailsUrl": "http://example.com",
        "name": "Foo Example App",
        "version": "1"
      },
      "dataType": {
        "name": "com.google.sleep.segment"
      }
    }
    
  2. इसके बाद, dataSet को भरें:

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

    PATCH
    

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

    https://www.googleapis.com/fitness/v1/users/userId/dataSources/dataSourceId/datasets/datasetId
    

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

    {
        "dataSourceId": dataSourceId,
        "point": [
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime1,
                "endTimeNanos": endTime1,
                "value": [
                    {
                        intVal: 4 // Light sleep
                    }
                ]
            },
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime2,
                "endTimeNanos": endTime2,
                "value": [
                    {
                        intVal: 5 // Deep sleep
                    }
                ]
            },
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime3,
                "endTimeNanos": endTime3,
                "value": [
                    {
                        intVal: 4 // Light sleep
                    }
                ]
            },
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime4,
                "endTimeNanos": endTime4,
                "value": [
                    {
                        intVal: 6 // REM sleep
                    }
                ]
            },
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime5,
                "endTimeNanos": endTime5,
                "value": [
                    {
                        intVal: 1 // Awake
                    }
                ]
            },
            {
                "dataTypeName": "com.google.sleep.segment",
                "startTimeNanos": startTime6,
                "endTimeNanos": endTime6,
                "value": [
                    {
                        intVal: 4 // Light sleep
                    }
                ]
            }
         ]
     }
    

नींद के सेशन का डेटा सेव करने की अनुमति दें

आखिर में, नींद का सेशन डालकर, ऊपर दिए गए सेगमेंट का ग्रुप बनाएं. शुरुआत सेट करें इस सेशन का समय पहले सेगमेंट के शुरू होने के समय से लेकर खत्म होने के समय तक है आखिरी सेगमेंट के खत्म होने के समय तक.

Android

val fitnessOptions = FitnessOptions.builder()
    .accessSleepSessions(FitnessOptions.ACCESS_WRITE)
    .addDataType(DataType.TYPE_SLEEP_SEGMENT, FitnessOptions.ACCESS_WRITE)
    .build()

val session = Session.Builder()
    .setName(sessionName)
    .setIdentifier(identifier)
    .setDescription(description)
    .setStartTime(startTime1, TimeUnit.MILLISECONDS) // From first segment
    .setEndTime(endTime6, TimeUnit.MILLISECONDS) // From last segment
    .setActivity(FitnessActivities.SLEEP)
    .build()

// Build the request to insert the session.
val request = SessionInsertRequest.Builder()
    .setSession(session)
    .addDataSet(dataset)
    .build()

// Insert the session into Fit platform
Log.i(TAG, "Inserting the session in the Sessions API")
Fitness.getSessionsClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions))
    .insertSession(request)
    .addOnSuccessListener {
        Log.i(TAG,"Session insert was successful!")
    }
    .addOnFailureListener { e ->
        Log.i(TAG, "There was a problem inserting the session", e)
    }

आराम

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

PUT

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

https://www.googleapis.com/fitness/v1/users/me/sessions/identifier

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

{
    "id": identifier,
    "name": sessionName,
    "description": description,
    "startTimeMillis": startTime1,
    "endTimeMillis": endTime6,
    "version": 1,
    "lastModifiedToken": "exampleToken",
    "application": {
        "detailsUrl": "http://example.com",
        "name": "Foo Example App",
        "version": "1.0"
    },
    "activityType": 72 // Sleep
}