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

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

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

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

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

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

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

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

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

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

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

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

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

  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:19.0.0")
}

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

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 रेफ़रंस देखें.

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

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

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