Health Connect में Android 14, सामान्य डेटा स्टोरेज लेयर के तौर पर मौजूद होगा यह डेटा, विस्तृत अनुमतियों के ज़रिए सुरक्षित किया जाता है. साथ ही, इसे Android सिस्टम ऐप्लिकेशन (इस पूरे दस्तावेज़ में 'फ़्रेमवर्क' के तौर पर बताया गया है मॉड्यूल).
डेवलपर को यह मानना चाहिए कि Health Connect APK (Android 13) पुराने वर्शन वाला है साथ में काम करने के लिए, फ़्रेमवर्क मॉडल के साथ काम करता है. फ़्रेमवर्क मॉडल पहले की तरह काम करेगा इसके पहले वाले APK के साथ 100% सुविधा समानता.
Android 13 से 14 में हुए ट्रांज़िशन के दौरान, यह ज़रूरी है कि उपयोगकर्ता अनुभव जितना हो सके उतना आसान और आसान बना रहता है.
इस दस्तावेज़ में माइग्रेशन प्लान के बारे में जानकारी दी गई है. साथ ही, माइग्रेशन के कुछ उदाहरण दिए गए हैं साथ ही, इसमें Jetpack SDK में होने वाले बदलावों की जानकारी दी गई है, जिससे Health Connect API.
माइग्रेशन प्लान
- Android 14 रिलीज़ होने के बाद, Google Health Connect की जानकारी देना शुरू कर देगा Android सिस्टम ऐप्लिकेशन पर उपलब्ध होती है.
- सभी सुविधाओं के एक जैसे होने के बाद, डेटा को APK से बैकफ़िल कर दिया जाएगा.
- सभी एंट्री पॉइंट, सिस्टम ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को टारगेट करेंगे.
- डेटा माइग्रेट करने की प्रोसेस शुरू हो जाएगी. माइग्रेशन के दौरान, मॉड्यूल एपीआई को 'माइग्रेशन की प्रोसेस' के साथ निलंबित कर दिया जाएगा स्थिति. यह यह Health Connect के यूज़र इंटरफ़ेस (यूआई) में भी दिखेगा.
- माइग्रेशन पूरा होने पर, APK को अनइंस्टॉल किया जा सकता है.
माइग्रेशन की स्थितियों के उदाहरण
यहां कुछ उदाहरण दिए गए हैं जो दोनों के लिए माइग्रेशन प्रोसेस को समझाते हैं
interval
और series
डेटा टाइप:
उदाहरण 1 - चल रहा है (इंटरवल डेटा)
किसी उपयोगकर्ता ने हर दिन 1 घंटे तक दौड़ने के 10 साल के रिकॉर्ड इकट्ठा किए हैं. यह इसके बराबर है:
- व्यायाम सत्र के रिकॉर्ड: 365 * 10 * 1
- चरण: 365 * 10 * 1
- कैलोरी: 365 * 10 * 1
- कुल = 365 * 10 * 3 (365 * 30) = 10,150
यह डेटा बताता है कि एक ग्रुप 3,000 रिकॉर्ड के बराबर है, इसलिए ऊपर दिए गए डेटा में करीब 4 अंक हैं हिस्से.
हमारी इंटरनल टेस्टिंग से यह पता चला है कि सामान्य डेटा को इकट्ठा करने में करीब डालने के लिए सेकंड है, इसलिए ऊपर दिया गया डेटा करीब 4 सेकंड में माइग्रेट हो जाएगा सेकंड.
उदाहरण 2 - धड़कन की दर (सीरीज़ का डेटा)
किसी उपयोगकर्ता ने 5 सालों की धड़कन की दर का डेटा इकट्ठा किया है (ऐसा रिकॉर्ड है जो मिनट) कुल 26,28,000 रिकॉर्ड हुए.
हर डेटा ग्रुप में 3,000 रिकॉर्ड होने पर, यह डेटा 876 हिस्सों में बंटा होगा. दिया गया उस एक हिस्से को डालने में करीब एक सेकंड लगता है, तो डेटा माइग्रेट हो जाएगा में 15 मिनट लगेंगे.
प्रस्तावित माइग्रेशन फ़्लो
हमने तुरंत माइग्रेशन का विकल्प चुना है. व्यावहारिक तौर पर, यह इसका मतलब है कि डिवाइस के अपग्रेड होते ही APK निष्क्रिय हो जाएगा Android 14, जिसमें उपयोगकर्ता की ओर से कम ध्यान दिया जाता है.
माइग्रेट करने की प्रोसेस के हाई लेवल पर गौर करें:
- उपयोगकर्ता अपने डिवाइस को Android 14 पर अपग्रेड करता है.
- Jetpack 14, उपयोगकर्ता को मॉड्यूल एपीआई पर रूट करता है और माइग्रेट किया जा रहा है.
- माइग्रेशन की प्रोसेस तब शुरू होती है, जब मॉड्यूल के वर्शन की सुविधा उपलब्ध होती है
जिसमें APK हो - यानी मॉड्यूल वर्शन में एक जैसा सुविधा सेट हो, या
वगैरह को कॉपी करने का विकल्प है. माइग्रेशन की प्रोसेस शुरू होने के बाद, APK अनुमतियों को माइग्रेट कर देता है
और डेटा.
- अगर दोनों वर्शन, सुविधाओं के साथ काम नहीं करते हैं, तो मॉड्यूल वर्शन अपग्रेड करने की ज़रूरत होती है. अपग्रेड पूरा होने के बाद, माइग्रेशन की प्रोसेस शुरू होगा.
- माइग्रेशन पूरा होने के बाद, स्टेटस को 'माइग्रेशन' में बदल दिया जाता है पूर्ण' हो जाता है, और मॉड्यूल API अनब्लॉक हो जाते हैं.
- APK को अब अनइंस्टॉल किया जा सकता है.
माइग्रेशन यूज़र इंटरफ़ेस (यूआई) एलिमेंट
उपयोगकर्ता की जानकारी के लिए, फ़्रेमवर्क मॉड्यूल की मदद से ये स्क्रीन दिखाई जाती हैं और माइग्रेशन के दौरान:
पहला डायग्राम. अगर Health Connect APK 'माइग्रेशन की जानकारी' नहीं है, तो एक प्रॉम्प्ट दिखता है APK अपडेट करने के बारे में उपयोगकर्ता को निर्देश दिए जा रहे हों. अगर उपयोगकर्ता अपडेट को अस्वीकार कर देता है, तो मॉड्यूल लगातार काम करता रहता है और अनुमतियां और डेटा इकट्ठा करना शुरू कर देता है:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
दूसरी इमेज. अगर फ़्रेमवर्क मॉड्यूल को सुविधा बनने के लिए अपडेट की ज़रूरत है
साथ काम करता है, तो एक प्रॉम्प्ट दिखता है, जिसमें उपयोगकर्ता से अपडेट करने के लिए कहा जाता है और
तो वे उसका डिवाइस फिर से चालू कर सकें. अगर उपयोगकर्ता अपडेट को अस्वीकार कर देता है, तो मॉड्यूल जारी रहता है
काम करता है और अनुमतियां और डेटा इकट्ठा करना शुरू करता है:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
तीसरी इमेज. माइग्रेशन की प्रोसेस के दौरान, स्पिनर दिखाया जाता है. इसमें यह जानकारी दी जाती है कि डेटा सिंक हो रहा है:
हटाया गया डेटा
अगर फ़्रेमवर्क मॉड्यूल ने डेटा और अनुमतियां हासिल करना शुरू कर दिया है माइग्रेशन या क्लाउड-आधारित डेटा वापस पाने से पहले. नियम लागू होते हैं.
अनुमतियां
अगर फ़्रेमवर्क मॉड्यूल में अनुमतियां मौजूद हैं, तो कोई भी डुप्लीकेट माइग्रेशन के दौरान, APK से मिली अनुमतियों को अनदेखा कर दिया जाता है.
डेटा
माइग्रेशन के दौरान, APK से जनरेट हुए डुप्लीकेट डेटा को अनदेखा कर दिया जाता है. ज़्यादा देखें मॉड्यूल के हाल के डेटा को प्राथमिकता दी जाती है.
अगर रिकॉर्ड आईडी, clientRecordId
को दिया जाता है, तो डेटा का डुप्लीकेट बनाया जाएगा
क्लाइंट. अगर ऐसा नहीं है, तो टाइम इंटरवल (अंदरूनी हिस्से के लिए startTime
और endTime
)
रिकॉर्ड और इंस्टैंट रिकॉर्ड के लिए time
), को डेटा के साथ कुंजी माना जाता है
ऐप्लिकेशन का टाइप और पैकेज का नाम.
Jetpack SDK टूल में बदलाव
Jetpack SDK टूल, Health दोनों के लिए एक ही इंटिग्रेशन पॉइंट के तौर पर काम करता है APK और Health Connect फ़्रेमवर्क के एपीआई जोड़ने का तरीका.
OEM, Jetpack 13 के साथ इंटिग्रेट कर सकते हैं. इससे, जब Jetpack 14 हो जाएगा, उपलब्ध न हो, तो आप नई लाइब्रेरी का इस्तेमाल कर सकते हैं और उसे Android 14.
हम SDK टूल का नया वर्शन रिलीज़ करेंगे. Android 14. आपको अपने मौजूदा इंटिग्रेशन में कुछ बदलाव करने होंगे, ताकि ट्रांज़िशन में कोई रुकावट न आए.
अनुमति का एलान
Android 13 में, पसंद के मुताबिक अनुमतियों के फ़ॉर्मैट का इस्तेमाल करके, अनुमतियों का एलान किया जा सकता है. मेनिफ़ेस्ट से लिंक की गई संसाधन फ़ाइल:
#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>
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>
<queries>
<package android:name="com.google.android.apps.healthdata"/>
</queries>
Health Connect खोलें
तीसरे पक्ष के ज़्यादातर ऐप्लिकेशन में Health Connect ऐप्लिकेशन खोलने के लिए एक बटन होता है. जैसे, के रूप में 'ऐक्सेस मैनेज करें' बटन पर क्लिक करें.
Android 13 पर, पैकेज के नाम का इस्तेमाल करके Health Connect ऐप्लिकेशन खोला जा सकता है या
androidx.health.ACTION_HEALTH_CONNECT_SETTINGS
कार्रवाई के ज़रिए.
Android 14 में, आपको एक इंटेंट कार्रवाई का इस्तेमाल करना होगा, जिसके बारे में Jetpack SDK में बताया गया है. इस टूल की वैल्यू, उस Android वर्शन के हिसाब से अलग-अलग होती हैं जिस पर यह ऐप्लिकेशन काम कर रहा है:
@get:JvmName("getHealthConnectSettingsAction")
@JvmStatic val
ACTION_HEALTH_CONNECT_SETTINGS
Health Connect क्लाइंट पाना
हमने sdkStatus
नाम का एक एपीआई बनाया है. यह Jetpack 11 में उपलब्ध है.
दो अन्य बहिष्कृत API को बदलें - IsSdkSupported()
और
isProviderAvailable()
.
सेशन रिकॉर्ड एपीआई में किए गए बदलाव
अल्फ़ा10 के हिस्से के तौर पर, ExerciseSession
के चार सब-टाइप मिटा दिए गए हैं
रिलीज़:
ExerciseEvent
ExerciseLaps
ExerciseRepetitions
SwimmingStrokes
ExerciseSessionRecord
की तरह, SleepStage
इसका सब-टाइप बन जाएगा
SleepSession
.
ExerciseSessionRecord
सब-टाइप और SleepSession
, दोनों में बदलाव होंगे
इसे अप्रैल SDK टूल के अपडेट के तहत रिलीज़ किया गया था.
कसरत के सेशन के टाइप का अपडेट
यहां दिए गए कसरत वाले सेशन टाइप अब काम नहीं करेंगे. इसके बजाय, उन्हें जोड़ दिया जाएगा आगे की तारीख में सेगमेंट टाइप के तौर पर:
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
अपवाद. इन्हें नीचे दिए गए तरीकों से इस्तेमाल किया जाना चाहिए (
प्राथमिकता का क्रम):
1. 'पिछली बार पढ़े जाने' के बाद से अब तक का सारा डेटा पढ़ें और उसका डुप्लीकेट बनाएं टाइमस्टैंप या आखिरी वीडियो 30 दिन
इस टाइमस्टैंप को सेव करें कि किसी ऐप्लिकेशन ने पिछली बार Health Connect में मौजूद डेटा को कब पढ़ा था. टोकन पर की अवधि खत्म होने पर, डेटा को इस वैल्यू से या पिछले 30 दिनों में फिर से पढ़ा जाना चाहिए (जो भी कम से कम के बराबर हो) और पहले पढ़े गए डेटा से उसका डुप्लीकेट बनाना का इस्तेमाल किया जा सकता है.
2. 'पिछली बार पढ़े जाने' के बाद का डेटा पढ़ें टाइमस्टैंप
टाइमस्टैंप बनाएं, ताकि यह पता चल सके कि Health Connect से डेटा को पिछली बार कब पढ़ा गया था टोकन की समयसीमा खत्म होने के बाद, उस वैल्यू के बाद का सारा डेटा पढ़ें.
3. पिछले 30 दिनों का डेटा मिटाना और फिर से पढ़ना
Health Connect में मौजूद पिछले 30 दिनों का सारा डेटा मिटाएं और सारा डेटा मिटाएं उस डेटा को फिर से अपलोड करना होगा (उदाहरण के लिए, जब ऐप्लिकेशन पहली बार Health के इंटिग्रेटेड हो जाते हैं कनेक्ट करें).
4. कुछ न करें (जैसे, पिछले 30 दिनों का डेटा फिर से पढ़ें और डुप्लीकेट न करें)
इसे अंतिम उपाय के रूप में उपयोग किया जाना चाहिए, जिसमें प्रदर्शित होने का जोखिम डुप्लीकेट डेटा. इसके बजाय, डेवलपर को विकल्प 1-3 को एक्सप्लोर करना चाहिए, क्योंकि यूयूआईडी पहले से मौजूद होना चाहिए.
Jetpack SDK टूल की मदद से Android 14 के एपीआई टेस्ट करना
Android 14 Jetpack SDK टूल को 7 जून, 2023 को रिलीज़ किया जाएगा. साथ ही, Android 14 का बीटा 3 रिलीज़. आपको इसके लिए अपने ऐप्लिकेशन का कंपाइल करना शुरू करना होगा Android 14 वाले डिवाइस में, Android 14 Jetpack SDK टूल का इस्तेमाल किया जा सकता है.
अगर आपको Android डेवलपर प्रीव्यू के बिल्ड के मुकाबले अपने समाधान की जांच करनी है, तो तो 7 जून से पहले, मदद के लिए अपने Google पीओसी से संपर्क करें.
अगर आपको बीटा 3 रिलीज़ के हिसाब से समाधान की जांच करनी है, तो आपको आपके 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 को पसंद के मुताबिक बनाएं
Android 14 में, Health Connect की निजता और डेटा मैनेजमेंट कंट्रोल मौजूद हैं चुनें.
डेटा मैनेजमेंट और अनुमतियों की स्क्रीन को, Health Connect, ओईएम के लिए कस्टम ओवरले की सुविधा देता है.
OEM स्टाइलिंग से जुड़े दस्तावेज़ पाने के लिए, Health Connect Google Mobile Services देखें दस्तावेज़ में दिया गया है.