ब्लूटूथ कम ऊर्जा

Android, ब्लूटूथ स्मार्ट विज्ञापन (बीएलई) के लिए प्लैटफ़ॉर्म की सुविधा पहले से उपलब्ध कराता है. साथ ही, ऐसे एपीआई भी उपलब्ध कराता है जिनका इस्तेमाल करके ऐप्लिकेशन, डिवाइसों को ढूंढ सकते हैं, सेवाओं के लिए क्वेरी कर सकते हैं, और जानकारी भेज सकते हैं.

आम तौर पर, इनके लिए इस सुविधा का इस्तेमाल किया जाता है:

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

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

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

इस वजह से, अगर आपके ऐप्लिकेशन में संवेदनशील जानकारी कैप्चर की जाती है, तो आपको उस डेटा की निजता को सुरक्षित रखने के लिए, ऐप्लिकेशन-लेयर सुरक्षा लागू करनी चाहिए.

बुनियादी बातें

बीएलई की सुविधा वाले डिवाइसों के लिए, एक-दूसरे के बीच डेटा ट्रांसफ़र करने के लिए, उन्हें पहले एक चैनल बनाना होगा. Bluetooth LE APIs का इस्तेमाल करने के लिए, आपको अपनी मेनिफ़ेस्ट फ़ाइल में कई अनुमतियों का एलान करना होगा. ब्लूटूथ का इस्तेमाल करने की अनुमति मिलने पर, आपके ऐप्लिकेशन को BluetoothAdapter को ऐक्सेस करना होगा. साथ ही, यह पता लगाना होगा कि डिवाइस पर ब्लूटूथ की सुविधा उपलब्ध है या नहीं अगर ब्लूटूथ उपलब्ध है, तो डिवाइस आस-पास के BLE डिवाइसों को स्कैन करेगा. कोई डिवाइस मिलने के बाद, BLE डिवाइस पर GATT सर्वर से कनेक्ट करके, BLE डिवाइस की क्षमताओं का पता लगाया जाता है. कनेक्ट होने के बाद, उपलब्ध सेवाओं और सुविधाओं के आधार पर, कनेक्ट किए गए डिवाइस पर डेटा ट्रांसफ़र किया जा सकता है.

मुख्य शब्द और कॉन्सेप्ट

यहां बीएलई के मुख्य शब्दों और कॉन्सेप्ट की खास जानकारी दी गई है:

  • जेनरिक एट्रिब्यूट प्रोफ़ाइल (जीएटीटी)
    GATT प्रोफ़ाइल, BLE लिंक पर "एट्रिब्यूट" के तौर पर जाने जाने वाले छोटे डेटा के हिस्सों को भेजने और पाने के लिए एक सामान्य स्पेसिफ़िकेशन है. सभी मौजूदा बीएलई ऐप्लिकेशन प्रोफ़ाइलें, जीएटीटी पर आधारित होती हैं. ज़्यादा जानने के लिए, GitHub पर Android BluetoothLeGatt का सैंपल देखें.
  • प्रोफ़ाइल
    Bluetooth SIG, बीएलई डिवाइसों के लिए कई प्रोफ़ाइलें तय करता है. प्रोफ़ाइल से यह पता चलता है कि कोई डिवाइस किसी खास ऐप्लिकेशन में कैसे काम करता है. ध्यान दें कि किसी डिवाइस में एक से ज़्यादा प्रोफ़ाइलें लागू की जा सकती हैं. उदाहरण के लिए, किसी डिवाइस में धड़कन की दर का पता लगाने वाला मॉनिटर और बैटरी लेवल का पता लगाने वाला डिवाइस हो सकता है.
  • एट्रिब्यूट प्रोटोकॉल (ATT)
    GATT, एट्रिब्यूट प्रोटोकॉल (ATT) पर बना है. इसे GATT/ATT भी कहा जाता है. ATT को बीएलई डिवाइसों पर चलाने के लिए ऑप्टिमाइज़ किया गया है. इस तरह, यह कम से कम बाइट का इस्तेमाल करता है. हर एट्रिब्यूट की पहचान, यूनिवर्सल यूनीक आइडेंटिफ़ायर (यूयूआईडी) से की जाती है. यह स्ट्रिंग आईडी के लिए स्टैंडर्ड 128-बिट फ़ॉर्मैट होता है. इसका इस्तेमाल, जानकारी की खास तौर पर पहचान करने के लिए किया जाता है. एटीटी से भेजे जाने वाले एट्रिब्यूट को वर्णों और सेवाओं के तौर पर फ़ॉर्मैट किया जाता है.
  • खास बात
    किसी विशेषता में एक वैल्यू और 0 से लेकर n तक के डिस्क्रिप्टर होते हैं. ये डिस्क्रिप्टर, विशेषता की वैल्यू के बारे में बताते हैं. किसी विशेषता को क्लास की तरह ही एक टाइप माना जा सकता है.
  • डेस्क्रिप्टर
    डेस्क्रिप्टर, तय किए गए ऐसे एट्रिब्यूट होते हैं जो किसी विशेषता की वैल्यू के बारे में बताते हैं. उदाहरण के लिए, डिस्क्रिप्टर में, इंसान के पढ़ने लायक जानकारी, किसी विशेषता की वैल्यू के लिए स्वीकार की जाने वाली रेंज या किसी विशेषता की वैल्यू के हिसाब से मेज़र की जाने वाली इकाई की जानकारी दी जा सकती है.
  • सेवा
    सेवा, खास सुविधाओं का एक कलेक्शन होती है. उदाहरण के लिए, आपके पास "हार्ट रेट मॉनिटर" नाम की सेवा हो सकती है, जिसमें "हार्ट रेट मेज़रमेंट" जैसी विशेषताएं शामिल हों. bluetooth.org पर, जीएटीटी पर आधारित मौजूदा प्रोफ़ाइलों और सेवाओं की सूची देखी जा सकती है.

भूमिकाएं और ज़िम्मेदारियां

जब कोई डिवाइस, बीएलई डिवाइस के साथ इंटरैक्ट करता है, तो भूमिकाओं और ज़िम्मेदारियों को दो अलग-अलग तरीकों से बांटा जाता है:

  • सेंट्रल बनाम पेरिफ़ेरल. यह बात BLE कनेक्शन पर लागू होती है. जैसे, मुख्य भूमिका में मौजूद डिवाइस, विज्ञापन खोजता है और सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) की भूमिका में डिवाइस का विज्ञापन दिखाता है. सिर्फ़ सहायक डिवाइस की भूमिका वाले दो डिवाइस, एक-दूसरे से बात नहीं कर सकते. इसी तरह, सिर्फ़ मुख्य डिवाइस की भूमिका वाले दो डिवाइस भी एक-दूसरे से बात नहीं कर सकते.

  • GATT सर्वर बनाम GATT क्लाइंट. इससे यह तय होता है कि कनेक्शन बनाने के बाद, दोनों डिवाइस एक-दूसरे से कैसे बातचीत करेंगे. क्लाइंट की भूमिका वाला डिवाइस, डेटा के लिए अनुरोध भेजता है और सर्वर की भूमिका वाला डिवाइस, उन्हें पूरा करता है.

सेंट्रल-पेरिफ़रल और सर्वर-क्लाइंट रोल डिवीज़न के बीच का फ़र्क़ समझने के लिए, एक ऐसा उदाहरण देखें जिसमें आपके पास Android फ़ोन और BLE की सुविधा वाला गतिविधि ट्रैकर है. यह सेंसर डेटा को फ़ोन में वापस भेजता है.

  • फ़ोन, सेंट्रल डिवाइस के तौर पर, बीएलई डिवाइसों को लगातार स्कैन करता है. गतिविधि ट्रैकर, पैरफ़िरियल डिवाइस होता है. यह कनेक्ट करने का अनुरोध पाने के लिए, विज्ञापन दिखाता है और इंतज़ार करता है.

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

ऐप्लिकेशन के किसी अन्य डिज़ाइन में, फ़ोन के बजाय स्मार्टवॉच को GATT सर्वर की भूमिका दी जा सकती है. ज़्यादा जानकारी के लिए, BluetoothGattServer देखें.