ঘুমের ডেটা লিখুন

আপনার অ্যাপ ঘুমের সূক্ষ্ম তথ্য পড়তে ও লিখতে পারে। এর মধ্যে SleepStages এনুমারেটেড টাইপ থেকে হালকা ঘুম, গভীর ঘুম, REM এবং জাগ্রত অবস্থার ঘুমের পর্যায়গুলো অন্তর্ভুক্ত। ঘুমের তথ্য লেখার জন্য আপনাকে অবশ্যই FitnessActivities.SLEEP টাইপের একটি সেশন তৈরি করতে হবে। Google Fit অ্যাপে ব্যবহারকারীর জার্নালে ঘুমের তথ্য দেখাতে হলে, তা অবশ্যই একটি সেশনের মধ্যে আবদ্ধ থাকতে হবে।

ঐচ্ছিকভাবে, সেশনের মধ্যে SleepStages টাইপের সেগমেন্ট সন্নিবেশ করুন:

সূক্ষ্মতাহীন উদাহরণ

To write a night of sleep with no stage granularity, follow the example below. Create a session with start and end time, and the activity SLEEP.

অ্যান্ড্রয়েড

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)
    }

অ্যান্ড্রয়েডে সেশন সম্পর্কে আরও বিস্তারিত জানুন।

বিশ্রাম

HTTP পদ্ধতি

PUT

URL অনুরোধ করুন

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
}

ঘুমের পর্যায়গুলোর সূক্ষ্মতার উদাহরণ

ঘুমের পর্যায়ভিত্তিক বিস্তারিত বিবরণ লিখতে হলে, সর্বোচ্চ স্তরের স্লিপ সেশন এবং ঘুমের বিভিন্ন পর্যায়ের জন্য আলাদা আলাদা সেগমেন্ট উভয়ই লিখুন।

স্লিপ সেগমেন্ট লিখুন

এই উদাহরণে আমরা এক রাতের ঘুমের বিভিন্ন পর্যায়কে বোঝানোর জন্য কয়েকটি অংশ লিখব।

অ্যান্ড্রয়েড

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 তৈরি করুন:

    HTTP পদ্ধতি

    POST
    

    URL অনুরোধ করুন

    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 পূরণ করুন:

    HTTP পদ্ধতি

    PATCH
    

    URL অনুরোধ করুন

    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
                    }
                ]
            }
         ]
     }
    

ঘুমের সেশন লিখুন

অবশেষে, একটি স্লিপ সেশন যুক্ত করে উপরের সেগমেন্টগুলোকে গ্রুপ করুন। এই সেশনের শুরুর সময় প্রথম সেগমেন্টের শুরুর সময়ে এবং শেষের সময় শেষ সেগমেন্টের শেষের সময়ে সেট করুন।

অ্যান্ড্রয়েড

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)
    }

বিশ্রাম

HTTP পদ্ধতি

PUT

URL অনুরোধ করুন

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
}