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

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

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

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

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

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

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

  • रिमोट कंट्रोल: स्मार्टवॉच, फ़ोन के लिए रिमोट की तरह काम करती है. जैसे, फ़ोन पर चल रहे म्यूज़िक प्लेयर को कंट्रोल करना, प्रज़ेंटेशन की स्लाइड बदलना, कैमरे के शटर की तरह काम करना.
  • हाथ में पकड़े जाने वाले डिवाइस पर ऐप्लिकेशन लॉन्च करना: "फ़ोन पर खोलें" बटन की सुविधा.
  • ऑथेंटिकेशन ब्रिजिंग: शुरुआती सेटअप के दौरान, फ़ोन से स्मार्टवॉच पर सेशन टोकन भेजना.

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

  • डेटा सेव करना: वर्कआउट, नोट.
  • कॉन्टेंट फ़ेच करना: पिछले वर्कआउट की सूची लोड करना, संगीत डाउनलोड करना, मौसम की जानकारी फ़ेच करना.
  • स्टेट सिंक करना: अगर उपयोगकर्ता वेब पर अपनी प्रोफ़ाइल फ़ोटो बदलता है, तो स्मार्टवॉच, फ़ोन से क्वेरी करके नहीं, बल्कि क्लाउड का इस्तेमाल करके अपडेट होती है.

इन स्थितियों के लिए, डेटा लेयर एपीआई के बजाय, अपने मौजूदा एंडपॉइंट और इन्फ़्रास्ट्रक्चर का इस्तेमाल करें.

कम्यूनिकेशन के विकल्प

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

  1. सीधे तौर पर, जब Wear OS डिवाइस और किसी अन्य डिवाइस के बीच ब्लूटूथ कनेक्शन बना हो.
  2. उपलब्ध नेटवर्क पर, जैसे कि एलटीई या वाई-फ़ाई. इसके लिए, 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:20.0.1")
}

शुरुआती पेयरिंग की प्रोसेस को आसान बनाना

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

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

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

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

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

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

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

val dataClient = Wearable.getDataClient(this)

val available = try {
    GoogleApiAvailability.getInstance()
        .checkApiAvailability(client)
        .await()
    true
} catch (e: AvailabilityException) {
    // API is not available in this device.
    false
}

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

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

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

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

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

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