कॉन्टेंट बनाने वाई-फ़ाई अवेयर Android 8.0 में जोड़ी गई सुविधा, सहायक डिवाइसों को जगहें खोजने, कनेक्ट करने, और रेंज (Android 9 में जोड़ा गया) को सीधे एक-दूसरे से जोड़ें इंटरनेट या मोबाइल नेटवर्क के ऐक्सेस के बिना ही, वाई-फ़ाई अवेयर प्रोटोकॉल का इस्तेमाल किया जा सकता है. यह सुविधा, Wi-Fi Alliance (WFA) के Wi-Fi Aware स्पेसिफ़िकेशन (वर्शन 2.0, 3.0, 3.1, और 4.0) पर आधारित है. इसकी मदद से, भरोसेमंद डिवाइसों और ऐप्लिकेशन के बीच, ज़्यादा डेटा को आसानी से शेयर किया जा सकता है. हालांकि, ये डिवाइस और ऐप्लिकेशन नेटवर्क से कनेक्ट नहीं होते.
उदाहरण और सोर्स
इस सुविधा का इस्तेमाल करने के लिए, डिवाइस बनाने वाली कंपनियों को वाई-फ़ाई वेंडर एचएएल लागू करना चाहिए. Android 14 और उसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और उससे पहले के वर्शन के लिए, वेंडर HAL इंटरफ़ेस को HIDL का इस्तेमाल करके तय किया जाता है.
वाई-फ़ाई अवेयर की सुविधा का इस्तेमाल करने के लिए, वाई-फ़ाई इंटरफ़ेस का पालन करें. लागू किए गए इंटरफ़ेस के आधार पर, यहां दिया गया तरीका अपनाया जा सकता है:
- एआईडीएल:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.2
या उसके बाद
यह देखने के लिए कि यह एआईडीएल और एचआईडीएल इंटरफ़ेस से कैसे जुड़ा है, लेगसी वाई-फ़ाई एचएएल देखें: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.
लागू करना
डिवाइस बनाने वाली कंपनियों को फ़्रेमवर्क और एचएएल/फ़र्मवेयर, दोनों के लिए सहायता देनी होगी:
- फ़्रेमवर्क:
- एओएसपी कोड
- जागरूकता बढ़ाने की सुविधा चालू करें: इसके लिए, फ़ीचर फ़्लैग और बिल्ड फ़्लैग, दोनों की ज़रूरत होती है
- वाई-फ़ाई अवेयर (एनएएन) एचएएल सपोर्ट (जिसमें फ़र्मवेयर की सुविधा शामिल है)
डिवाइस बनाने वाली कंपनियां, इस सुविधा को लागू करने के लिए वाई-फ़ाई इंटरफ़ेस लागू करती हैं और दो फ़ीचर फ़्लैग चालू करें:
इस इलाके में मौजूद
BoardConfig.mk
याBoardConfig-common.mk
मेंdevice/<oem>/<device>
, यह फ़्लैग जोड़ें:WIFI_HIDL_FEATURE_AWARE := true
device/<oem>/<device>
में मौजूदdevice.mk
में,PRODUCT_COPY_FILES
एनवायरमेंट वैरिएबल, जिसमें वाई-फ़ाई के साथ काम करने की सुविधा शामिल होगी ऐसी सुविधा जिसकी जानकारी है:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
वाई-फ़ाई अवेयर में IEEE 802.11mc प्रोटोकॉल का इस्तेमाल करने वाले मिलते-जुलते डिवाइस शामिल हैं, इसे राउंड ट्रिप टाइम (आरटीटी) भी कहते हैं. वाई-फ़ाई अवेयर की यह सुविधा, डिवाइस पर वाई-फ़ाई आरटीटी की सुविधा के काम करने पर ही काम करती है. इसका मतलब है कि डिवाइस पर वाई-फ़ाई अवेयर और वाई-फ़ाई आरटीटी, दोनों सुविधाएं काम करनी चाहिए. ज़्यादा जानकारी के लिए, यह देखें वाई-फ़ाई आरटीटी.
अगर ऐसा नहीं है, तो इस सुविधा के लिए ज़रूरी सभी चीज़ें AOSP में शामिल हैं.
अगर WIFI_HAL_INTERFACE_COMBINATIONS
फ़्लैग दिया गया है, तो WIFI_HIDL_FEATURE_AWARE
फ़्लैग को अनदेखा कर दिया जाता है. ज़्यादा जानकारी के लिए,
वाई-फ़ाई के एक से ज़्यादा इंटरफ़ेस पर एक साथ काम करना लेख पढ़ें.
एमएसी रैंडमाइज़ेशन
Android के लिए, वाई-फ़ाई अवेयर डिस्कवरी (एनएमआई) और डेटा के MAC पते की ज़रूरत होती है इंटरफ़ेस (एनडीपी) किसी भी क्रम में नहीं लगाए जा सकते और वे सही MAC पते से मेल नहीं खाते डिवाइस की स्क्रीन पर. MAC पते:
- वाई-फ़ाई अवेयर की सुविधा चालू या फिर से चालू होने पर, यह पता लगाने के लिए कि डिवाइस किस वाई-फ़ाई से कनेक्ट हो, कोई भी वाई-फ़ाई पता चुना जा सकता है.
वाई-फ़ाई अवेयर की सुविधा चालू होने पर,
NanConfigRequest.macAddressRandomizationIntervalSec
पैरामीटर से कॉन्फ़िगर किए गए नियमित इंटरवल पर, मैक पते को बदला जाना चाहिए. फ़्रेमवर्क इसे डिफ़ॉल्ट रूप से 30 मिनट पर कॉन्फ़िगर करता है.
सस्पेंड और रिज़्यूम
Android 14 और उसके बाद के वर्शन में, Wi-Fi Aware की मदद से, ऐप्लिकेशन को डिस्कवरी सेशन को निलंबित करने और फिर से शुरू करने की अनुमति मिलती है. इनमें उन सेशन से जुड़े सभी डेटा पाथ भी शामिल हैं. इसमें मदद करना डिवाइस की क्षमता से डिवाइस, डिस्कवरी सेशन को तेज़ी से फिर से शुरू कर सकते हैं और कम बैटरी का इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि डिस्कवरी सेशन निलंबित किए जा सकते हैं.
अगर किसी डिवाइस पर, सस्पेंड करके फिर से शुरू करने की यह सुविधा काम करती है, तो फ़र्मवेयर निलंबित हो जाता है जब किसी खास ऐप्लिकेशन ने डिस्कवरी सेशन को निलंबित किया हो, तब वाई-फ़ाई अवेयर सेशन को निलंबित किया गया हो. जब डिवाइस का पता लगाने का सेशन निलंबित होता है, तो डिवाइस ट्रांसमिट नहीं होता इसके अलावा, उस सेशन के लिए किसी भी फ़्रेम को पाने के साथ-साथ, सत्र. अगर सभी डिस्कवरी सेशन निलंबित कर दिए जाते हैं, तो डिवाइस कोई भी वाई-फ़ाई अवेयर फ़्रेम ट्रांसमिट या रिसीव नहीं करता.
जब कोई ऐप्लिकेशन, निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करता है, तो फ़्रेमवर्क उस सेशन को उसकी पिछली स्थिति पर वापस ले जाता है. इसमें, उससे जुड़े सभी एनडीपी सेशन भी शामिल होते हैं. निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करना, पिछले खोज नतीजों में दिखने से ज़्यादा तेज़ होता है वाई-फ़ाई की जानकारी और नया खोज सत्र बनाया जा रहा है.
डिवाइस मैन्युफ़ैक्चरर को डिवाइस के लिए, एचएएल और फ़र्मवेयर की सहायता देनी होगी, ताकि डिवाइस डिस्कवरी सेशन को निलंबित और फिर से शुरू किया जा सके. जानकारी के लिए, यह देखें
IWifiNanIface.java
.
डिवाइस बनाने वाली कंपनियां, आउट-ऑफ़-बैंड कम्यूनिकेशन (जैसे, BLE) का इस्तेमाल इन कामों के लिए कर सकती हैं कई डिवाइसों पर निलंबन को सिंक करें और फिर से शुरू करें.
पुष्टि करें
Android, इकाई टेस्ट, कंपैटिबिलिटी टेस्ट सुइट (CTS) टेस्ट, और CTS की पुष्टि करने वाले टेस्ट का एक सेट उपलब्ध कराता है. इनकी मदद से, Wi-Fi Aware सुविधा की पुष्टि की जा सकती है. वाई-फ़ाई अवेयर की जांच करने के लिए, इनका इस्तेमाल भी किया जा सकता है: विक्रेता टेस्ट सुइट (वीटीएस).
यूनिट टेस्ट
वाई-फ़ाई अवेयर पैकेज की जांच, इनका इस्तेमाल करके की जाती है:
सेवा की जांच:
atest com.android.server.wifi.aware
मैनेजर टेस्ट:
atest android.net.wifi.aware
कंपैटबिलिटी टेस्ट सुइट (सीटीएस) के टेस्ट
वाई-फ़ाई अवेयर सुविधा की पुष्टि करने के लिए, सीटीएस टेस्ट का इस्तेमाल करें. CTS, इस सुविधा के चालू होने का पता लगाता है और उससे जुड़े टेस्ट अपने-आप शामिल कर लेता है.
सीटीएस टेस्ट को इनके ज़रिए ट्रिगर किया जा सकता है:
atest SingleDeviceTest
सीटीएस की पुष्टि करने वाले टूल के टेस्ट
CTS Verifier, दो डिवाइसों का इस्तेमाल करके वाई-फ़ाई अवेयर की जांच की पुष्टि करता है: एक जांच डिवाइस और किसी जाने-पहचाने गुड डिवाइस को चुनें. जांच करने के लिए, CTS Verifier खोलें और 'वाई-फ़ाई के बारे में जानकारी देने वाले टेस्ट' सेक्शन पर जाएं.