डेटा लेयर एपीआई के बारे में खास जानकारी

क्लाउड-आधारित नोड को Google के मालिकाना हक वाले सर्वर से कंट्रोल किया जाता है
पहली इमेज. हैंडहेल्ड और Wear OS डिवाइसों वाले नोड के नेटवर्क का सैंपल.

Google Play services का हिस्सा, पहने जा सकने वाले डिवाइसों के लिए डेटा लेयर एपीआई, पहने जा सकने वाले डिवाइसों (जैसे, स्मार्ट वॉच) और कनेक्ट किए गए हैंडहेल्ड डिवाइसों (आम तौर पर स्मार्टफ़ोन) के बीच कम्यूनिकेशन चैनल उपलब्ध कराता है. यह एक ऐसा तरीका है जिससे डिवाइसों के बीच डेटा सिंक और ट्रांसफ़र किया जा सकता है.

ध्यान दें: यह एपीआई सिर्फ़ Wear OS स्मार्टवॉच और उनसे जोड़े गए Android डिवाइसों पर उपलब्ध है. iOS फ़ोन से जोड़ी गई Wear OS स्मार्टवॉच के लिए, ऐप्लिकेशन इंटरनेट कनेक्शन उपलब्ध होने पर, क्लाउड-आधारित अन्य एपीआई से क्वेरी कर सकते हैं. इन अन्य एपीआई के बारे में ज़्यादा जानकारी के लिए, Wear OS पर नेटवर्क ऐक्सेस और सिंक करना लेख पढ़ें.

चेतावनी: डेटा लेयर एपीआई को, हाथ में पकड़े जाने वाले डिवाइसों और पहने जाने वाले डिवाइसों के बीच कम्यूनिकेशन के लिए डिज़ाइन किया गया है. इसलिए, इन डिवाइसों के बीच कम्यूनिकेशन सेट अप करने के लिए, सिर्फ़ इन एपीआई का इस्तेमाल किया जा सकता है. उदाहरण के लिए, कम लेवल के सॉकेट खोलकर, कम्यूनिकेशन चैनल बनाने की कोशिश न करें.

इस्तेमाल के सामान्य उदाहरण

Data Layer API, खास तौर पर फ़िटनेस और मीडिया के इस्तेमाल के उदाहरणों के लिए फ़ायदेमंद है.

फ़िटनेस ऐप्लिकेशन

Wear OS ऐप्लिकेशन से मोबाइल ऐप्लिकेशन पर कसरत का डेटा भेजना. फ़िटनेस ऐप्लिकेशन को अक्सर स्मार्टवॉच से कैप्चर किए गए कसरत के डेटा को मोबाइल ऐप्लिकेशन या Health Connect पर सेव करना पड़ता है. अगर डेटा ट्रांसफ़र करने के लिए Data Layer API का इस्तेमाल किया जा रहा है, तो मैसेज क्लाइंट का इस्तेमाल करके, Wear OS ऐप्लिकेशन से मोबाइल ऐप्लिकेशन पर कसरत का डेटा भेजें. ऐसा करने पर, डेटा को Health Connect में सेव किया जा सकेगा.

घर पर कसरत करते समय, मोबाइल डिवाइस पर लाइव डेटा स्ट्रीम करना

घर पर कसरत करने के दौरान आम तौर पर होने वाली स्थिति में, Wear OS डिवाइस से मोबाइल डिवाइस पर, दिल की धड़कन का डेटा स्ट्रीम किया जाता है. साथ ही, उपयोगकर्ता को उसके मोबाइल डिवाइस की स्क्रीन पर, दिल की धड़कन की अप-टू-डेट जानकारी दिखाई जाती है. इस डेटा को स्ट्रीम करने के लिए, चैनल क्लाइंट का इस्तेमाल करें.

मीडिया ऐप्लिकेशन

स्मार्टवॉच से फ़ोन पर मीडिया प्लेयर को रोकने/फिर से शुरू करने/शुरू करने/बंद करने के लिए, मैसेज क्लाइंट का इस्तेमाल करें.

संपर्क करने के विकल्प

डेटा को इनमें से किसी एक तरीके से ट्रांसफ़र किया जाता है:

  1. सीधे, जब Wear OS डिवाइस और किसी दूसरे डिवाइस के बीच ब्लूटूथ कनेक्शन हो.
  2. उपलब्ध नेटवर्क, जैसे कि LTE या वाई-फ़ाई पर, Google के सर्वर पर नेटवर्क नोड का इस्तेमाल करके.

सभी डेटा लेयर क्लाइंट, डिवाइसों पर उपलब्ध कनेक्शन के हिसाब से, ब्लूटूथ या क्लाउड का इस्तेमाल करके डेटा एक्सचेंज कर सकते हैं. मान लें कि डेटा लेयर का इस्तेमाल करके ट्रांसफ़र किया गया डेटा, किसी समय Google के मालिकाना हक वाले सर्वर का इस्तेमाल कर सकता है.

ब्लूटूथ

जब डिवाइसों को ब्लूटूथ की मदद से कनेक्ट किया जाता है, तो डेटा लेयर इस कनेक्शन का इस्तेमाल करता है. डिवाइसों के बीच एक एन्क्रिप्ट (सुरक्षित) किया गया चैनल होता है. इसमें स्टैंडर्ड ब्लूटूथ एन्क्रिप्शन का इस्तेमाल किया जाता है, जिसे Google Play services मैनेज करता है.

बादल का आइकॉन

ब्लूटूथ उपलब्ध न होने पर, डेटा अपने-आप Google Cloud के ज़रिए भेजा जाता है. Google Cloud के ज़रिए ट्रांसफ़र किया जाने वाला सारा डेटा, एंड-टू-एंड एन्क्रिप्ट (सुरक्षित) होता है.

कम्यूनिकेशन की सुरक्षा

Google Play services, Wear OS डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन और आस-पास मौजूद हैंडहेल्ड डिवाइस पर इंस्टॉल किए गए उसी ऐप्लिकेशन के बीच ज़्यादा सुरक्षित तरीके से डेटा शेयर करने के लिए, ये पाबंदियां लागू करता है:

  • पैकेज का नाम सभी डिवाइसों पर एक जैसा होना चाहिए.
  • पैकेज का हस्ताक्षर, सभी डिवाइसों पर मैच होना चाहिए.

किसी भी तरह के कनेक्शन के लिए, किसी दूसरे ऐप्लिकेशन के पास डेटा का ऐक्सेस नहीं होता.

सेटअप

Wearable Data Layer API की ये डिपेंडेंसी हैं:

  • Google Play services का नया वर्शन.
  • Wear OS डिवाइस या Wear OS एम्युलेटर.

अपने Wear मॉड्यूल की build.gradle फ़ाइल में, यह डिपेंडेंसी शामिल करें:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:19.0.0")
}

डिवाइसों को जोड़ने की शुरुआती प्रोसेस को आसान बनाना

Horologist, प्लैटफ़ॉर्म एपीआई के साथ-साथ कई सहायक लाइब्रेरी भी उपलब्ध कराता है. इसमें एक डेटा लेयर लाइब्रेरी शामिल होती है, जो मोबाइल डिवाइस और Wear OS डिवाइस के बीच कनेक्शन बनाने में मदद करती है. इसके अलावा, यह इन कामों के लिए आसान एपीआई उपलब्ध कराता है:

  • दूसरे डिवाइस पर ऐप्लिकेशन इंस्टॉल करें.
  • दूसरे डिवाइस पर ऐप्लिकेशन लॉन्च करें.
  • दूसरे डिवाइस पर कोई खास गतिविधि शुरू करें.
  • साथी ऐप्लिकेशन लॉन्च करें.

डेटा लेयर ऐक्सेस करना

डेटा लेयर एपीआई को कॉल करने के लिए, Wearable क्लास का इस्तेमाल करके, DataClient और MessageClient जैसी अलग-अलग क्लाइंट क्लास के इंस्टेंस पाएं.

ज़्यादा जानकारी के लिए, DataLayer का सैंपल देखें.

कम से कम क्लाइंट का इस्तेमाल करना

क्लाइंट बनाने के लिए, यहां दिया गया उदाहरण कोड देखें:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

कॉन्टेक्स्ट, कोई भी मान्य Android कॉन्टेक्स्ट हो सकता है. अगर Activity के दायरे में एपीआई का इस्तेमाल किया जा रहा है, तो Wearable क्लास के getDataClient() तरीके का इस्तेमाल करें. इससे कुछ इंटरैक्शन, सूचनाओं के बजाय डायलॉग के तौर पर दिखते हैं. जैसे, जब उपयोगकर्ता से Google Play services का वर्शन अपडेट करने के लिए कहा जाता है.

डिफ़ॉल्ट रूप से, ऐप्लिकेशन के मुख्य यूज़र इंटरफ़ेस (यूआई) थ्रेड पर, दर्शकों को कॉलबैक भेजे जाते हैं. किसी दूसरी थ्रेड पर कॉलबैक करने के लिए, WearableOptions ऑब्जेक्ट का इस्तेमाल करके, कस्टम Looper तय करें:

Kotlin

runBlocking {
    Wearable.getDataClient(context, options)
}

Java

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

ज़्यादा जानकारी के लिए, WearableOptions.Builder रेफ़रंस देखें.

ज़रूरत के हिसाब से क्लाइंट इंस्टेंस फिर से बनाना

DataClient और MessageClient जैसे पहने जा सकने वाले डिवाइसों के लिए एपीआई क्लाइंट बनाने में कम पैसे लगते हैं. इसलिए, क्लाइंट को अपने पास रखने के बजाय, ज़रूरत पड़ने पर उन्हें फिर से बनाएं. इसके लिए, अपने ऐप्लिकेशन के हिसाब से स्टाइल का इस्तेमाल करें.

क्लाइंट की स्थिति, जैसे कि रजिस्टर किए गए लिसनर का सेट, सभी क्लाइंट के साथ शेयर किया जाता है. साथ ही, अगर कोई ऐप्लिकेशन चल रहा है और Google Play services अपडेट हो जाता है, तो क्लाइंट की स्थिति को सुरक्षित रखा जाता है.