সেশনগুলি একটি সময়ের ব্যবধানের প্রতিনিধিত্ব করে যার সময় ব্যবহারকারীরা একটি ফিটনেস কার্যকলাপ সম্পাদন করে। Sessions API আপনার অ্যাপকে ফিটনেস স্টোরে সেশন তৈরি করতে দেয়।
চলমান ফিটনেস ক্রিয়াকলাপগুলির জন্য যেখানে ব্যবহারকারী ফিটনেস ক্রিয়াকলাপ শুরু এবং শেষ করার সময় আপনার অ্যাপকে অবহিত করে, আপনি রিয়েল টাইমে সেশন তৈরি করতে পারেন৷
আপনি ফিটনেস ক্রিয়াকলাপ শেষ হওয়ার পরে বা যখন আপনি Google ফিটের বাইরে থেকে ডেটা এবং সেশনগুলি আমদানি করেন তখন আপনি ফিটনেস স্টোরে একটি সেশন সন্নিবেশ করতে পারেন৷
রিয়েল টাইমে সেশন তৈরি করুন
চলমান ফিটনেস ক্রিয়াকলাপের জন্য সেশন তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
RecordingClient.subscribeপদ্ধতি ব্যবহার করে ফিটনেস ডেটাতে সদস্যতা নিন ।ব্যবহারকারী ফিটনেস কার্যকলাপ শুরু করলে
SessionsClient.startSessionপদ্ধতি ব্যবহার করে একটি সেশন শুরু করুন ।ব্যবহারকারী যখন ফিটনেস কার্যকলাপ শেষ করে তখন
SessionsClient.stopSessionপদ্ধতি ব্যবহার করে সেশনটি বন্ধ করুন ।RecordingClient.unsubscribeপদ্ধতি ব্যবহার করে আপনি আর আগ্রহী নন এমন ফিটনেস ডেটা থেকে সদস্যতা ত্যাগ করুন ।
একটি অধিবেশন শুরু করুন
আপনার অ্যাপে একটি সেশন শুরু করতে, SessionsClient.startSession পদ্ধতি ব্যবহার করুন:
কোটলিন
// 1. Subscribe to fitness data // 2. Create a session object // (provide a name, identifier, description, activity and start time) val session = Session.Builder() .setName(sessionName) .setIdentifier("UniqueIdentifierHere") .setDescription("Morning run") .setActivity(FitnessActivities.RUNNING) .setStartTime(startTime, TimeUnit.MILLISECONDS) .build() // 3. Use the Sessions client to start a session: Fitness.getSessionsClient(this, googleSigninAccount) .startSession(session) .addOnSuccessListener { Log.i(TAG, "Session started successfully!") } .addOnFailureListener { e -> Log.w(TAG, "There was an error starting the session", e) }
জাভা
// 1. Subscribe to fitness data // 2. Create a session object // (provide a name, identifier, description, activity and start time) Session session = new Session.Builder() .setName(sessionName) .setIdentifier("UniqueIdentifierHere") .setDescription("Morning run") .setActivity(FitnessActivities.RUNNING) .setStartTime(startTime, TimeUnit.MILLISECONDS) .build(); // 3. Use the Sessions client to start a session: Fitness.getSessionsClient(this, googleSigninAccount) .startSession(session) .addOnSuccessListener(unused -> Log.i(TAG, "Session started successfully!")) .addOnFailureListener(e -> Log.w(TAG, "There was an error starting the session", e));
একটি অধিবেশন বন্ধ করুন
আপনার অ্যাপে একটি সেশন বন্ধ করতে, SessionsClient.stopSession পদ্ধতি ব্যবহার করুন:
কোটলিন
// Invoke the SessionsClient with the session identifier Fitness.getSessionsClient(this, googleSigninAccount) .stopSession(session.getIdentifier()) .addOnSuccessListener { Log.i(TAG, "Session stopped successfully!") // Now unsubscribe from the fitness data (see // Recording Fitness data) } .addOnFailureListener { e -> Log.w(TAG, "There was an error stopping the session", e) }
জাভা
// Invoke the SessionsClient with the session identifier Fitness.getSessionsClient(this, googleSigninAccount) .stopSession(session.getIdentifier()) .addOnSuccessListener (unused -> { Log.i(TAG, "Session stopped successfully!"); // Now unsubscribe from the fitness data (see // Recording Fitness data) }) .addOnFailureListener(e -> Log.w(TAG, "There was an error stopping the session", e));
ফলস্বরূপ অধিবেশন নিম্নলিখিত পরামিতি আছে:
শুরুর সময়: যে সময় আপনার অ্যাপটি
SessionsClient.startSessionপদ্ধতিতে কল করেছে।শেষ সময়: যে সময় আপনার অ্যাপটি
SessionsClient.stopSessionপদ্ধতিতে কল করেছে।নাম:
Sessionঅবজেক্টের নাম যা আপনিSessionsClient.startSessionএ পাস করেন।
ফিটনেস স্টোরে সেশন ঢোকান
আপনি পূর্বে সংগৃহীত ডেটা সহ সেশন সন্নিবেশ করতে, নিম্নলিখিতগুলি করুন:
একটি
Sessionঅবজেক্ট তৈরি করুন যা একটি সময়ের ব্যবধান এবং অন্যান্য প্রয়োজনীয় তথ্য নির্দিষ্ট করে।সেশনের সাথে একটি
SessionInsertRequestতৈরি করুন।ঐচ্ছিকভাবে, ডেটাসেট এবং মোট ডেটা পয়েন্ট যোগ করুন।
SessionsClient.insertSessionপদ্ধতি ব্যবহার করে সেশনটি সন্নিবেশ করুন।
একটি সেশন ঢোকান
ব্যবহারকারীর ফিটনেস ইতিহাসে সেশন মেটাডেটা রয়েছে এমন ফিটনেস ডেটা সন্নিবেশ করতে, প্রথমে একটি SessionInsertRequest উদাহরণ তৈরি করুন:
কোটলিন
// Create a session with metadata about the activity. val session = Session.Builder() .setName(SAMPLE_SESSION_NAME) .setIdentifier("UniqueIdentifierHere") .setDescription("Long run around Shoreline Park") .setActivity(FitnessActivities.RUNNING) .setStartTime(startTime, TimeUnit.MILLISECONDS) .setEndTime(endTime, TimeUnit.MILLISECONDS) .build() // Build a session insert request val insertRequest = SessionInsertRequest.Builder() .setSession(session) // Optionally add DataSets for this session. .addDataSet(dataset) .build()
জাভা
// Create a session with metadata about the activity. Session session = new Session.Builder() .setName(SAMPLE_SESSION_NAME) .setIdentifier("UniqueIdentifierHere") .setDescription("Long run around Shoreline Park") .setActivity(FitnessActivities.RUNNING) .setStartTime(startTime, TimeUnit.MILLISECONDS) .setEndTime(endTime, TimeUnit.MILLISECONDS) .build(); // Build a session insert request SessionInsertRequest insertRequest = new SessionInsertRequest.Builder() .setSession(session) // Optionally add DataSets for this session. .addDataSet(dataset) .build();
SessionInsertRequest ক্লাস ফিটনেস ইতিহাসে ডেটা সন্নিবেশ করার সুবিধার পদ্ধতি প্রদান করে এবং SessionsClient.insertSession এ একই কলে একটি সেশন তৈরি করে। ডেটাসেটগুলি, যদি থাকে, এমনভাবে ঢোকানো হয় যেন আপনি প্রথমে HistoryClient.insertData মেথড কল করেছেন, এবং তারপর সেশন তৈরি করা হয়।
কোটলিন
Fitness.getSessionsClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) .insertSession(insertRequest) .addOnSuccessListener { Log.i(TAG, "Session insert was successful!") } .addOnFailureListener { e -> Log.w(TAG, "There was a problem inserting the session: ", e) }
জাভা
Fitness.getSessionsClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) .insertSession(insertRequest) .addOnSuccessListener (unused -> Log.i(TAG, "Session insert was successful!")) .addOnFailureListener(e -> Log.w(TAG, "There was a problem inserting the session: ", e));
কার্যকলাপ বিভাগ সন্নিবেশ
Google Fit-এ কার্যকলাপ বিভাগের ডেটা নির্দেশ করে যে একটি নির্দিষ্ট সময়ের ব্যবধানে ব্যবহারকারীরা কী ফিটনেস কার্যকলাপ করছেন৷ কার্যকলাপ বিভাগের ডেটা com.google.activity.segment ( TYPE_ACTIVITY_SEGMENT ) টাইপের এবং ওয়ার্কআউটের সময় বিরতি সমর্থন করার জন্য বিশেষভাবে উপযোগী৷
উদাহরণস্বরূপ, আপনি যদি Session.Builder.setActivity() পদ্ধতির সাথে 30-মিনিটের চলমান সেশন তৈরি করেন কিন্তু ব্যবহারকারী এর মধ্যে 10-মিনিট বিরতি নেয়, তাহলে আপনার অ্যাপটি ভুলভাবে দেখাবে যে ব্যবহারকারী 30 মিনিট ধরে দৌড়েছেন। ব্যবহারকারী হাঁটছেন বা দৌড়াচ্ছেন কিনা তা আপনার অ্যাপ শনাক্ত করতে পারে, অ্যাক্টিভিটি সেগমেন্ট ডেটা আপনার অ্যাপকে নির্দেশ করতে দেয় যে ব্যবহারকারী 10 মিনিট দৌড়েছেন, 10 মিনিট হাঁটছেন, তারপর অতিরিক্ত 10 মিনিট দৌড়েছেন। অন্যান্য অ্যাপ্লিকেশানগুলি আপনার সন্নিবেশ করা কার্যকলাপ বিভাগের ডেটা দেখে সঠিকভাবে কার্যকলাপের রিপোর্ট করতে পারে।
একটি সেশনে কার্যকলাপ বিভাগের ডেটা যোগ করতে, একটি ডেটাসেট তৈরি করুন যাতে com.google.activity.segment প্রকারের পয়েন্ট থাকে। এই পয়েন্টগুলির প্রতিটি একটি অবিচ্ছিন্ন সময়ের ব্যবধানকে উপস্থাপন করে যার সময় ব্যবহারকারী একটি একক কার্যকলাপের ধরন সম্পাদন করে।
পূর্ববর্তী দৌড় এবং হাঁটার উদাহরণের জন্য তিনটি অ্যাক্টিভিটি সেগমেন্ট পয়েন্টের প্রয়োজন হবে: একটি প্রথম 10 মিনিট চলার জন্য, একটি পরবর্তী 10 মিনিটে হাঁটার জন্য এবং একটি শেষ 10 মিনিট চলার জন্য।
কোটলিন
// Create a DataSet of ActivitySegments to indicate the runner walked for // 10 minutes in the middle of a run. val activitySegmentDataSource = DataSource.Builder() .setAppPackageName(this.packageName) .setDataType(DataType.TYPE_ACTIVITY_SEGMENT) .setStreamName(SAMPLE_SESSION_NAME + "-activity segments") .setType(DataSource.TYPE_RAW) .build() val firstRunningDp = DataPoint.builder(activitySegmentDataSource) .setActivityField(Field.FIELD_ACTIVITY, FitnessActivities.RUNNING) .setTimeInterval(startTime, startWalkTime, TimeUnit.MILLISECONDS) .build() val walkingDp = DataPoint.builder(activitySegmentDataSource) .setActivityField(Field.FIELD_ACTIVITY, FitnessActivities.WALKING) .setTimeInterval(startWalkTime, endWalkTime, TimeUnit.MILLISECONDS) .build() val secondRunningDp = DataPoint.builder(activitySegmentDataSource) .setActivityField(Field.FIELD_ACTIVITY, FitnessActivities.RUNNING) .setTimeInterval(endWalkTime, endTime, TimeUnit.MILLISECONDS) .build() val activitySegments = DataSet.builder(activitySegmentDataSource) .addAll(listOf(firstRunningDp, walkingDp, secondRunningDp)) .build() // Create a session with metadata about the activity. val session = Session.Builder() .setName(