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

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

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

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

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

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

जब इंटरैक्शन सिर्फ़ स्मार्टवॉच और फ़ोन के बीच हो, तब 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: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 रेफ़रंस देखें.

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

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

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