হেলথ কানেক্টে ভোক্তা স্বাস্থ্য এবং ফিটনেস ডেটার জন্য একটি সাধারণ ডেটা স্টোরেজ স্তর হিসেবে অ্যান্ড্রয়েড ১৪ থাকবে, যা গ্রানুলার অনুমতি দ্বারা সুরক্ষিত থাকবে এবং একটি অ্যান্ড্রয়েড সিস্টেম অ্যাপ হিসেবে অ্যাক্সেসযোগ্য হবে (এই ডকুমেন্ট জুড়ে 'ফ্রেমওয়ার্ক' মডিউল হিসাবে উল্লেখ করা হয়েছে)।
ডেভেলপারদের হেলথ কানেক্ট APK (Android 13) কে ফ্রেমওয়ার্ক মডেলের জন্য একটি ব্যাকওয়ার্ড কম্প্যাটিবিলিটি লেয়ার হিসেবে বিবেচনা করা উচিত। ফ্রেমওয়ার্ক মডেলটি তার পূর্বসূরী APK এর সাথে 100% ফিচার প্যারিটি বজায় রাখবে।
অ্যান্ড্রয়েড ১৩ থেকে ১৪-এ রূপান্তরের সময়, ব্যবহারকারীর অভিজ্ঞতা যতটা সম্ভব মসৃণ এবং স্বজ্ঞাত রাখা অত্যন্ত গুরুত্বপূর্ণ।
এই নথিতে মাইগ্রেশন পরিকল্পনার রূপরেখা দেওয়া হয়েছে, কিছু উদাহরণ মাইগ্রেশন পরিস্থিতি প্রদান করা হয়েছে এবং জেটপ্যাক SDK-তে পরিবর্তনগুলি তালিকাভুক্ত করা হয়েছে, যা হেলথ কানেক্ট API-তে অ্যাক্সেস সহজতর করে।
মাইগ্রেশন পরিকল্পনা
- অ্যান্ড্রয়েড ১৪ প্রকাশিত হলে, গুগল একটি অ্যান্ড্রয়েড সিস্টেম অ্যাপ হিসেবে হেলথ কানেক্ট প্রদান করবে।
- ফিচার প্যারিটি অর্জনের পর APK থেকে ডেটা ব্যাকফিল করা হবে।
- সমস্ত এন্ট্রি পয়েন্ট সিস্টেম অ্যাপ UI কে লক্ষ্য করবে।
- ডেটা মাইগ্রেশন শুরু হবে। মাইগ্রেশনের সময়, মডিউল API গুলি 'প্রক্রিয়ায় স্থানান্তর' স্ট্যাটাস সহ স্থগিত করা হবে। এটি হেলথ কানেক্ট UI-তেও দৃশ্যমান হবে।
- মাইগ্রেশন সম্পূর্ণ হয়ে গেলে, APK আনইনস্টল করা যাবে।
মাইগ্রেশন পরিস্থিতির উদাহরণ
এখানে কিছু উদাহরণ দেওয়া হল যা interval এবং series ডেটা টাইপ উভয়ের জন্য মাইগ্রেশন প্রক্রিয়া ব্যাখ্যা করে:
উদাহরণ ১ - চলমান (ব্যবধানের তথ্য)
একজন ব্যবহারকারী প্রতিদিন ১ ঘন্টা ধরে ১০ বছরের দৌড়ের রেকর্ড সংগ্রহ করেছেন। এর সমান:
- অনুশীলন সেশন রেকর্ড: 365 * 10 * 1
- ধাপ: ৩৬৫ * ১০ * ১
- ক্যালোরি: ৩৬৫ * ১০ * ১
- মোট = ৩৬৫ * ১০ * ৩ (৩৬৫ * ৩০) = ১০,৯৫০
যেহেতু ১ খণ্ড ৩,০০০ রেকর্ডের সমান, তাই তথ্যের মোট পরিমাণ প্রায় ৪ খণ্ড।
আমাদের অভ্যন্তরীণ পরীক্ষা নিশ্চিত করেছে যে একটি সাধারণ অংশ সন্নিবেশ করতে প্রায় এক সেকেন্ড সময় লাগে, তাই উদাহরণের ডেটা প্রায় 4 সেকেন্ডের মধ্যে স্থানান্তরিত হবে।
উদাহরণ ২ - হৃদস্পন্দন (সিরিজ ডেটা)
একজন ব্যবহারকারী ৫ বছরের হৃদস্পন্দনের তথ্য সংগ্রহ করেছেন (প্রতি মিনিটে একটি রেকর্ড তৈরি হয়েছে) যার মোট সংখ্যা ২,৬২৮,০০০।
প্রতি খন্ডে ৩,০০০ রেকর্ডের ভিত্তিতে, তথ্য ৮৭৬ খন্ডে বিতরণ করা হয়। যেহেতু ১ খন্ড সন্নিবেশ করতে প্রায় এক সেকেন্ড সময় লাগে, তাই তথ্যটি ১৫ মিনিটেরও কম সময়ে স্থানান্তরিত হবে।
প্রস্তাবিত মাইগ্রেশন প্রবাহ
আমরা তাৎক্ষণিক স্থানান্তরের সিদ্ধান্ত নিয়েছি। বাস্তবিক অর্থে, এর অর্থ হল ডিভাইসটি Android 14 এ আপগ্রেড করার সাথে সাথে APK নিষ্ক্রিয় হয়ে যাবে, ন্যূনতম ব্যবহারকারীর হস্তক্ষেপের সাথে।
এখানে উচ্চ-স্তরের মাইগ্রেশন প্রবাহ রয়েছে:
- ব্যবহারকারী তাদের ডিভাইসটি অ্যান্ড্রয়েড ১৪-তে আপগ্রেড করে।
- জেটপ্যাক ১৪ ব্যবহারকারীকে মডিউল API গুলিতে রুট করে এবং মাইগ্রেশন চলাকালীন সেগুলিকে ব্লক করে।
- মডিউল সংস্করণটি যখন APK-এর সাথে বৈশিষ্ট্য সামঞ্জস্যপূর্ণ হয় তখন মাইগ্রেশন প্রক্রিয়া শুরু হয় - অন্য কথায়, মডিউল সংস্করণে একই বৈশিষ্ট্য সেট থাকে, অথবা আরও বেশি। মাইগ্রেশন প্রক্রিয়া শুরু হয়ে গেলে, APK অনুমতি এবং ডেটা স্থানান্তর করে।
- যদি উভয় সংস্করণই বৈশিষ্ট্যের সাথে সামঞ্জস্যপূর্ণ না হয়, তাহলে মডিউল সংস্করণটি আপগ্রেড করতে হবে। আপগ্রেড সম্পূর্ণ হলে, মাইগ্রেশন প্রক্রিয়া শুরু হবে।
- মাইগ্রেশন সম্পন্ন হলে, অবস্থাটি 'মাইগ্রেশন সম্পূর্ণ'-এ পরিবর্তিত হয় এবং মডিউল API গুলি আনব্লক করা হয়।
- APK এখন আনইনস্টল করা যাবে।
মাইগ্রেশন UI উপাদান
ব্যবহারকারী শিক্ষার উদ্দেশ্যে ফ্রেমওয়ার্ক মডিউল দ্বারা মাইগ্রেশনের আগে এবং চলাকালীন উভয় ক্ষেত্রেই নিম্নলিখিত স্ক্রিনগুলি প্রদর্শিত হয়:
চিত্র ১. যদি Health Connect APK 'মাইগ্রেশন সচেতন' না থাকে, তাহলে ব্যবহারকারীকে APK আপডেট করার নির্দেশ দিয়ে একটি প্রম্পট প্রদর্শিত হবে। ব্যবহারকারী যদি আপডেট প্রত্যাখ্যান করেন, তাহলে মডিউলটি কাজ করতে থাকবে এবং অনুমতি এবং ডেটা সংগ্রহ করতে শুরু করবে।

চিত্র ২. যদি ফ্রেমওয়ার্ক মডিউলটি বৈশিষ্ট্যের সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য একটি আপডেটের প্রয়োজন হয়, তাহলে ব্যবহারকারীকে আপডেটটি সম্পাদন করতে এবং তাদের ডিভাইসটি পুনরায় বুট করতে বলার জন্য একটি প্রম্পট প্রদর্শিত হবে। যদি ব্যবহারকারী আপডেটটি প্রত্যাখ্যান করেন, তাহলে মডিউলটি কাজ করতে থাকবে এবং অনুমতি এবং ডেটা সংগ্রহ করতে শুরু করবে।

চিত্র ৩. মাইগ্রেশন প্রক্রিয়ার সময় একটি স্পিনার প্রদর্শিত হয়, যেখানে ডেটা সিঙ্ক হচ্ছে তা ব্যাখ্যা করার জন্য টেক্সট থাকে।

নকল করা ডেটা
যদি কোনও মাইগ্রেশন বা ক্লাউড-ভিত্তিক পুনরুদ্ধার হওয়ার আগে ফ্রেমওয়ার্ক মডিউলটি ডেটা এবং অনুমতি অর্জন শুরু করে, তাহলে নিম্নলিখিত নিয়মগুলি প্রযোজ্য হবে।
অনুমতিসমূহ
যদি ফ্রেমওয়ার্ক মডিউলের মধ্যে অনুমতিগুলি উপস্থিত থাকে, তাহলে মাইগ্রেশন প্রক্রিয়ার সময় APK থেকে প্রাপ্ত যেকোনো ডুপ্লিকেট অনুমতি উপেক্ষা করা হবে।
উপাত্ত
মাইগ্রেশনের সময়, APK থেকে উদ্ভূত ডুপ্লিকেট ডেটা উপেক্ষা করা হয়। মডিউল থেকে সাম্প্রতিক ডেটা অগ্রাধিকার দেওয়া হয়।
যদি ক্লায়েন্ট রেকর্ড আইডি প্রদান করে থাকে, তাহলে clientRecordId এ ডেটা নকল করা হয়। যদি তা না হয়, তাহলে অ্যাপের ডেটা টাইপ এবং প্যাকেজের নামের সাথে সময়ের ব্যবধান (অভ্যন্তরীণ রেকর্ডের জন্য startTime এবং endTime , এবং তাৎক্ষণিক রেকর্ডের জন্য time ) কী হিসেবে বিবেচিত হবে।
জেটপ্যাক এসডিকে-তে পরিবর্তন
জেটপ্যাক এসডিকে হেলথ কানেক্ট APK এবং হেলথ কানেক্ট ফ্রেমওয়ার্ক এপিআই উভয়ের জন্যই সাধারণ ইন্টিগ্রেশন পয়েন্ট হিসেবে কাজ করে।
OEM গুলি Jetpack 13 এর সাথে ইন্টিগ্রেট করা শুরু করতে পারে যাতে Jetpack 14 উপলব্ধ হলে, আপনি নতুন লাইব্রেরিটি গ্রহণ করতে এবং Android 14 এর মধ্যে এটি কম্পাইল করতে সক্ষম হন।
আমরা SDK-এর একটি নতুন সংস্করণ প্রকাশ করব যা Android 14-এ রূপান্তর সমর্থন করে। একটি মসৃণ রূপান্তর নিশ্চিত করতে আপনাকে আপনার বিদ্যমান ইন্টিগ্রেশনে কিছু পরিবর্তন করতে হবে।
অনুমতি ঘোষণা
অ্যান্ড্রয়েড ১৩-তে, আপনি ম্যানিফেস্টের সাথে লিঙ্ক করা একটি রিসোর্স ফাইলে একটি কাস্টম অনুমতি ফর্ম্যাট ব্যবহার করে অনুমতি ঘোষণা করেন:
#AndroidManifest.xml
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
</intent-filter>
<meta-data
android:name="health_permissions"
android:resource="@array/health_permissions"/>
</activity>
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
#health_permissions.xml
<resources>
<array name="health_permissions">
<item>androidx.health.permission.SleepSession.READ</item>
<item>androidx.health.permission.SleepStage.READ</item>
<item>androidx.health.permission.Weight.READ</item>
<item>androidx.health.permission.Weight.WRITE</item>
</array>
</resources>
অ্যান্ড্রয়েড ১৪ সাপোর্ট করার জন্য, ডেভেলপারদের স্ট্যান্ডার্ড অনুমতি ফর্ম্যাটে যেতে হবে:
#AndroidManifest.xml
<uses-permission android:name=”android.permission.health.READ_SLEEP” />
<uses-permission android:name=”android.permission.health.READ_WEIGHT” />
<uses-permission android:name=”android.permission.health.WRITE_WEIGHT” />
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" />
</intent-filter>
</activity>
<queries>
<package android:name="com.google.android.apps.healthdata"/>
</queries>
ওপেন হেলথ কানেক্ট
বেশিরভাগ থার্ড-পার্টি অ্যাপে একটি বোতাম থাকে যা হেলথ কানেক্ট অ্যাপটি খোলে, যেমন ফিটবিটে 'অ্যাক্সেস পরিচালনা করুন' বোতাম।
অ্যান্ড্রয়েড ১৩-তে, আপনি হয় প্যাকেজের নাম ব্যবহার করে হেলথ কানেক্ট অ্যাপটি খুলবেন, অথবা androidx.health.ACTION_HEALTH_CONNECT_SETTINGS অ্যাকশনের মাধ্যমে।
অ্যান্ড্রয়েড ১৪-তে, আপনাকে জেটপ্যাক এসডিকে-তে উল্লেখিত একটি ইনটেন্ট অ্যাকশন ব্যবহার করতে হবে, যার মান এটি যে অ্যান্ড্রয়েড সংস্করণের উপর কাজ করছে তার উপর ভিত্তি করে বিভিন্ন:
@get:JvmName("getHealthConnectSettingsAction") @JvmStatic val ACTION_HEALTH_CONNECT_SETTINGS
হেলথ কানেক্ট ক্লায়েন্ট পাওয়া
আমরা sdkStatus নামে একটি একক API তৈরি করেছি, যা Jetpack 11 তে উপলব্ধ, যা আরও দুটি অবচিত API - IsSdkSupported() এবং isProviderAvailable() প্রতিস্থাপন করবে।
সেশন রেকর্ড API পরিবর্তন
আলফা১০ রিলিজের অংশ হিসেবে চারটি ExerciseSession সাবটাইপ বাদ দেওয়া হয়েছে:
-
ExerciseEvent -
ExerciseLaps -
ExerciseRepetitions -
SwimmingStrokes
ExerciseSessionRecord এর মতো, SleepStage SleepSession এর একটি উপপ্রকারে পরিণত হবে।
এপ্রিল SDK আপডেটের অংশ হিসেবে ExerciseSessionRecord সাবটাইপ এবং SleepSession পরিবর্তন উভয়ই প্রকাশ করা হবে।
ব্যায়াম সেশনের ধরণ আপডেট
নিচের ব্যায়াম সেশনের ধরণগুলি আর সমর্থিত হবে না, এবং পরবর্তীতে সেগমেন্টের ধরণ হিসাবে যোগ করা হবে:
-
EXERCISE_TYPE_BACK_EXTENSION -
EXERCISE_TYPE_BARBELL_SHOULDER_PRESS -
EXERCISE_TYPE_BENCH_PRESS -
EXERCISE_TYPE_BENCH_SIT_UP -
EXERCISE_TYPE_BURPEE -
EXERCISE_TYPE_CRUNCH -
EXERCISE_TYPE_DEADLIFT -
EXERCISE_TYPE_DUMBBELL_CURL_LEFT_ARM -
EXERCISE_TYPE_DUMBBELL_CURL_RIGHT_ARM -
EXERCISE_TYPE_DUMBBELL_FRONT_RAISE -
EXERCISE_TYPE_DUMBBELL_LATERAL_RAISE -
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM -
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM -
EXERCISE_TYPE_DUMBBELL_TRICEPS_EXTENSION_TWO_ARM -
EXERCISE_TYPE_FORWARD_TWIST -
EXERCISE_TYPE_JUMPING_JACK -
EXERCISE_TYPE_JUMP_ROPE -
EXERCISE_TYPE_LAT_PULL_DOWN -
EXERCISE_TYPE_LUNGE -
EXERCISE_TYPE_PLANK -
EXERCISE_TYPE_SQUAT -
EXERCISE_TYPE_UPPER_TWIST
প্রতিস্থাপনের ধরণ:
-
EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING -
EXERCISE_TYPE_STRENGTH_TRAINING -
EXERCISE_TYPE_CALISTHENICS
চেঞ্জলগ পরিচালনা
APK থেকে Android 14 এ স্যুইচ করার অংশ হিসেবে চেঞ্জলগগুলি স্থানান্তরিত হবে না।
মাইগ্রেশন সম্পূর্ণ হওয়ার পরে, আপনি TOKEN_EXPIRED অথবা TOKEN_INVALID ব্যতিক্রমগুলি পেতে শুরু করবেন। এগুলি নিম্নলিখিত উপায়ে পরিচালনা করা উচিত (পছন্দ অনুসারে):
১. 'শেষ পঠিত' টাইমস্ট্যাম্প থেকে, অথবা গত ৩০ দিনের সমস্ত ডেটা পড়ুন এবং নকল করুন
কোনও অ্যাপ হেলথ কানেক্ট থেকে শেষ কবে ডেটা পড়েছে তার একটি টাইমস্ট্যাম্প সংরক্ষণ করুন। টোকেনের মেয়াদ শেষ হলে, এই মান থেকে অথবা পূর্ববর্তী 30 দিন (যেটি সর্বনিম্ন সমান) থেকে ডেটা পুনরায় পড়া উচিত এবং UUID ব্যবহার করে পূর্বে পঠিত ডেটার সাথে এটিকে বাদ দেওয়া উচিত।
২. 'শেষ পঠিত' টাইমস্ট্যাম্প থেকে তথ্য পঠন
Health Connect থেকে ডেটা শেষ কবে পঠিত হয়েছিল তা নির্দেশ করে এমন একটি টাইমস্ট্যাম্প স্থাপন করুন এবং টোকেনের মেয়াদ শেষ হওয়ার পরে, সেই মানের পরে সমস্ত ডেটা পড়ুন।
৩. গত ৩০ দিনের ডেটা মুছে ফেলুন এবং পুনরায় পড়ুন
হেলথ কানেক্ট থেকে গত ৩০ দিনের পড়া সমস্ত ডেটা মুছে ফেলুন এবং সেই সমস্ত ডেটা আবার পড়ুন (যেমন অ্যাপগুলি যখন প্রথম হেলথ কানেক্টের সাথে একীভূত হয় তখন যেমনটি করা হয়)।
৪. কিছুই করবেন না (অর্থাৎ গত ৩০ দিনের ডেটা পুনরায় পড়ুন এবং নকল করবেন না)
এটিকে শেষ অবলম্বন হিসেবে ব্যবহার করা উচিত, কারণ এতে ডুপ্লিকেট ডেটা প্রদর্শনের ঝুঁকি থাকে। ডেভেলপারদের পরিবর্তে বিকল্প ১-৩ অন্বেষণ করা উচিত, কারণ UUID গুলি ইতিমধ্যেই তৈরি থাকা উচিত।
Jetpack SDK দিয়ে Android 14 API পরীক্ষা করা হচ্ছে
অ্যান্ড্রয়েড ১৪ জেটপ্যাক এসডিকে ৭ জুন ২০২৩ তারিখে অ্যান্ড্রয়েড ১৪ এর বিটা ৩ রিলিজের সাথে মুক্তি পাবে। অ্যান্ড্রয়েড ১৪ জেটপ্যাক এসডিকে ব্যবহার করতে সক্ষম হওয়ার জন্য আপনাকে অ্যান্ড্রয়েড ১৪ এর সাথে আপনার অ্যাপ কম্পাইল করা শুরু করতে হবে।
আপনি যদি ৭ই জুনের আগে অ্যান্ড্রয়েড ডেভেলপার প্রিভিউ বিল্ডের সাথে আপনার সমাধান পরীক্ষা করতে চান, তাহলে সহায়তার জন্য আপনার গুগল পিওসির সাথে যোগাযোগ করুন।
আপনি যদি বিটা ৩ রিলিজের বিরুদ্ধে আপনার সমাধানটি পরীক্ষা করতে চান, তাহলে আপনার APK-তে নিম্নলিখিত পরিবর্তনগুলি করা উচিত:
-
compileSDKPreview = UpsideDownCakeসেট করুন। - Android 14 এর জন্য একটি ইন্টেন্ট অন্তর্ভুক্ত করার জন্য ম্যানিফেস্ট আপডেট করুন:
# AndroidManifest.xml
<uses-permission android:name=”android.permission.health.READ_SLEEP”/>
<uses-permission android:name=”android.permission.health.READ_WEIGHT”/>
<uses-permission android:name=”android.permission.health.WRITE_WEIGHT”/>
<activity>
android:name=".RationaleActivity"
android:exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
</intent-filter>
</activity>
<activity-alias>
android:name="AndroidURationaleActivity"
android:exported="true"
android:targetActivity=".RationaleActivity"
android:permission="android.permission.START_VIEW_PERMISSION_USAGE">
<intent-filter>
<action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
<category android:name="android.intent.category.HEALTH_PERMISSIONS" />
</intent-filter>
</activity-alias>
<queries>
<package android:name="com.google.android.apps.healthdata" />
</queries>
OEM কাস্টমাইজেশন
অ্যান্ড্রয়েড ১৪-এ, হেলথ কানেক্টের গোপনীয়তা এবং ডেটা ব্যবস্থাপনা নিয়ন্ত্রণগুলি সিস্টেম সেটিংসের মধ্যে অবস্থিত।
ডেটা ম্যানেজমেন্ট এবং অনুমতি স্ক্রিনগুলিকে ডিভাইসের অংশের মতো দেখতে এবং অনুভব করতে, হেলথ কানেক্ট কাস্টম ওভারলে ব্যবহারের মাধ্যমে OEM থিমিং অফার করে।
OEM স্টাইলিং সম্পর্কিত ডকুমেন্টেশনের জন্য, Health Connect Google Mobile Services ডকুমেন্টেশন দেখুন। পৃষ্ঠাটি দেখার জন্য আপনাকে Google Developers-এ লগ ইন করতে হতে পারে।