रिकॉर्डिंग एपीआई, आपके ऐप्लिकेशन को बैटरी के कम इस्तेमाल के हिसाब से सेंसर डेटा के अपने-आप स्टोरेज का अनुरोध करने की सुविधा देता है. इसके लिए, सदस्यताएं बनाना ज़रूरी है. सदस्यता, किसी Android ऐप्लिकेशन से जुड़ी होती है. इसमें फ़िटनेस डेटा का टाइप या कोई खास डेटा सोर्स शामिल होता है.
अपने ऐप्लिकेशन में अलग-अलग तरह के डेटा या डेटा सोर्स के लिए, अलग-अलग सदस्यताएं बनाई जा सकती हैं. Google Fit, चालू सदस्यताओं का फ़िटनेस डेटा सेव करता है, भले ही आपका ऐप्लिकेशन न चल रहा हो. साथ ही, सिस्टम रीस्टार्ट होने पर, Google Fit इन सदस्यताओं को वापस ले लेता है.
रिकॉर्ड किया गया डेटा, उपयोगकर्ता के फ़िटनेस इतिहास में उपलब्ध होता है. अगर आपको अपने ऐप्लिकेशन में रीयल टाइम में डेटा भी दिखाना है, तो Reporting API के साथ सेंसर एपीआई का इस्तेमाल करें. सेशन मेटाडेटा के साथ फ़िटनेस का डेटा रिकॉर्ड करने के लिए, सेशन एपीआई का इस्तेमाल करें.
फ़िटनेस डेटा की सदस्यता लें
अपने ऐप्लिकेशन में सेंसर डेटा के बैकग्राउंड में डेटा इकट्ठा करने का अनुरोध करने के लिए, RecordingClient.subscribe
तरीके का इस्तेमाल करें, जैसा कि इस कोड स्निपेट में दिखाया गया है:
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) // This example shows subscribing to a DataType, across all possible data // sources. Alternatively, a specific DataSource can be used. .subscribe(DataType.TYPE_STEP_COUNT_DELTA) .addOnSuccessListener { Log.i(TAG, "Successfully subscribed!") } .addOnFailureListener { e -> Log.w(TAG, "There was a problem subscribing.", e) }
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) // This example shows subscribing to a DataType, across all possible // data sources. Alternatively, a specific DataSource can be used. .subscribe(DataType.TYPE_STEP_COUNT_DELTA) .addOnSuccessListener(unused -> Log.i(TAG, "Successfully subscribed!")) .addOnFailureListener( e -> Log.w(TAG, "There was a problem subscribing.", e));
सदस्यता जोड़ दिए जाने पर, Google Fit आपके ऐप्लिकेशन की ओर से फ़िटनेस के इतिहास में TYPE_STEP_COUNT_DELTA
टाइप का फ़िटनेस डेटा सेव करता है. यह सदस्यता आपके ऐप्लिकेशन के लिए इस्तेमाल की जा रही सदस्यताओं की सूची में दिखती है.
अपने ऐप्लिकेशन में फ़िटनेस डेटा के अलग-अलग प्रकारों की सदस्यता लेने के लिए, पिछले उदाहरण में दिए गए चरणों का पालन करें लेकिन हर बार एक अलग तरह का फ़िटनेस डेटा दें.
चालू सदस्यताओं की सूची बनाएं
अपने ऐप्लिकेशन की चालू सदस्यताओं की सूची पाने के लिए, RecordingClient.listSubscriptions
तरीके का इस्तेमाल करें, जैसा कि इस कोड स्निपेट में दिखाया गया है:
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) .listSubscriptions() .addOnSuccessListener { subscriptions -> for (sc in subscriptions) { val dt = sc.dataType Log.i(TAG, "Active subscription for data type: ${dt.name}") } }
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) .listSubscriptions() .addOnSuccessListener(subscriptions -> { for (Subscription sc : subscriptions) { DataType dt = sc.getDataType(); Log.i(TAG, "Active subscription for data type: ${dt.name}"); } }); }
फ़िटनेस डेटा की सदस्यता छोड़ें
अपने ऐप्लिकेशन में सेंसर डेटा को इकट्ठा होने से रोकने के लिए, RecordingClient.unsubscribe
तरीके का इस्तेमाल करें, जैसा कि इस कोड स्निपेट में दिखाया गया है:
Kotlin
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) // This example shows unsubscribing from a DataType. A DataSource should // be used where the subscription was to a DataSource. Alternatively, if // the client doesn't maintain its subscription information, they can use // an element from the return value of listSubscriptions(), which is of // type Subscription. .unsubscribe(DataType.TYPE_STEP_COUNT_DELTA) .addOnSuccessListener { Log.i(TAG,"Successfully unsubscribed.") } .addOnFailureListener { e-> Log.w(TAG, "Failed to unsubscribe.") // Retry the unsubscribe request. }
Java
Fitness.getRecordingClient(this, GoogleSignIn.getAccountForExtension(this, fitnessOptions)) // This example shows unsubscribing from a DataType. A DataSource // should be used where the subscription was to a DataSource. // Alternatively, if the client doesn’t maintain its subscription // information, they can use an element from the return value of // listSubscriptions(), which is of type Subscription. .unsubscribe(DataType.TYPE_STEP_COUNT_DELTA) .addOnSuccessListener(unused -> Log.i(TAG,"Successfully unsubscribed.")) .addOnFailureListener(e -> { Log.w(TAG, "Failed to unsubscribe."); // Retry the unsubscribe request. }); }