आपका ऐप्लिकेशन, नींद से जुड़ा डेटा पढ़ सकता है और उसे सेव कर सकता है.
इसमें SleepStages एन्यूमरेटेड टाइप से मिली जानकारी के आधार पर, हल्की नींद, गहरी नींद, आरईएम, और नींद के दौरान जागने के चरण शामिल होते हैं. नींद का डेटा लिखने के लिए, आपको FitnessActivities.SLEEP टाइप का सेशन बनाना होगा.
अगर नींद से जुड़ा डेटा, उपयोगकर्ता के Google Fit ऐप्लिकेशन में मौजूद जर्नल में दिखाना है, तो उसे सेशन में शामिल करना होगा.
आपके पास यह विकल्प है कि सेशन में SleepStages टाइप के सेगमेंट डालें:
SleepStages.SLEEP_LIGHTSleepStages.SLEEP_DEEPSleepStages.SLEEP_REMSleepStages.AWAKESleepStages.OUT_OF_BED
कम जानकारी देने वाला उदाहरण
नींद की अवधि के बारे में जानकारी देने के लिए, यहां दिया गया उदाहरण देखें. इसमें नींद की अलग-अलग स्टेज के बारे में जानकारी नहीं दी गई है.
शुरू और खत्म होने के समय के साथ-साथ activity SLEEP वाला सेशन बनाएं.
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 में सेशन के बारे में ज़्यादा जानें.
REST
एचटीटीपी मेथड
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()
REST
सबसे पहले
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" } }इसके बाद,
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) }
REST
एचटीटीपी मेथड
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
}