वाई-फ़ाई अवेयर

कॉन्टेंट बनाने वाई-फ़ाई अवेयर Android 8.0 में जोड़ी गई सुविधा, सहायक डिवाइसों को जगहें खोजने, कनेक्ट करने, और रेंज (Android 9 में जोड़ा गया) को सीधे एक-दूसरे से जोड़ें इंटरनेट या मोबाइल नेटवर्क के ऐक्सेस के बिना ही, वाई-फ़ाई अवेयर प्रोटोकॉल का इस्तेमाल किया जा सकता है. यह सुविधा, जिसे Wi-Fi Alliance पर बनाया गया है (डब्ल्यूएफ़ए) वाई-फ़ाई अवेयर की खास बातें (वर्शन 2.0, 3.0, 3.1, और 4.0) में, हाई-थ्रूपुट डेटा को आसानी से शेयर किया जा सकता है का इस्तेमाल करता है.

उदाहरण और सोर्स

इस सुविधा का इस्तेमाल करने के लिए, डिवाइस बनाने वाली कंपनियों को वाई-फ़ाई वेंडर एचएएल लागू करना चाहिए. Android 14 और उसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और उससे पहले के वर्शन के लिए, वेंडर HAL इंटरफ़ेस को HIDL का इस्तेमाल करके तय किया जाता है.

वाई-फ़ाई अवेयर सुविधा लागू करने के लिए वाई-फ़ाई इंटरफ़ेस को फ़ॉलो करें. लागू किए गए इंटरफ़ेस के आधार पर, यहां दिया गया तरीका अपनाया जा सकता है:

  • एआईडीएल: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 या उसके बाद

लेगसी वाई-फ़ाई एचएएल को देखकर यह पता लगाया जा सकता है कि यह वाई-फ़ाई एचएएल से कैसे जुड़ा है एआईडीएल और HIDL इंटरफ़ेस: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_नान.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_HIDL_FEATURE_AWARE फ़्लैग को अनदेखा कर दिया जाता है, अगर WIFI_HAL_INTERFACE_COMBINATIONS फ़्लैग बताया गया है. ज़्यादा जानकारी के लिए, यह देखें वाई-फ़ाई मल्टी-इंटरफ़ेस की एक साथ काम करने की क्षमता.

एमएसी रैंडमाइज़ेशन

Android के लिए, वाई-फ़ाई अवेयर डिस्कवरी (एनएमआई) और डेटा के MAC पते की ज़रूरत होती है इंटरफ़ेस (एनडीपी) किसी भी क्रम में नहीं लगाए जा सकते और वे सही MAC पते से मेल नहीं खाते डिवाइस की स्क्रीन पर. MAC पते:

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

सस्पेंड और रिज़्यूम

Android 14 और उसके बाद वाले वर्शन में, Wi-Fi Aware खास ऐप्लिकेशन के लिए, डिस्कवरी सेशन को निलंबित करने और फिर से शुरू करने की सुविधा (इसमें उन सेशन से जुड़े सभी डेटा पाथ भी शामिल हैं). इसमें मदद करना डिवाइस की क्षमता से डिवाइस, डिस्कवरी सेशन को तेज़ी से फिर से शुरू कर सकते हैं और कम बैटरी का इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि डिस्कवरी सेशन निलंबित किए जा सकते हैं.

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

जब कोई खास ऐप्लिकेशन, निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करता है, तो फ़्रेमवर्क सत्र को उसकी पिछली स्थिति पर वापस ले जाता है, जिसमें सभी संबद्ध एनडीपी शामिल हैं सत्र. निलंबित किए गए डिस्कवरी सेशन को फिर से शुरू करना, पिछले खोज नतीजों में दिखने से ज़्यादा तेज़ होता है वाई-फ़ाई की जानकारी और नया डिस्कवरी सेशन बनाया जा रहा है.

डिस्कवरी सेशन को निलंबित करने और फिर से शुरू करने की सुविधा के लिए, डिवाइस निर्माताओं को एचएएल और फ़र्मवेयर की सुविधा देनी होगी. जानकारी के लिए, यह देखें IWifiNanIface.java.

डिवाइस बनाने वाली कंपनियां, आउट-ऑफ़-बैंड कम्यूनिकेशन (जैसे, BLE) का इस्तेमाल इन कामों के लिए कर सकती हैं कई डिवाइसों पर निलंबन को सिंक करें और फिर से शुरू करें.

पुष्टि करें

Android, यूनिट टेस्ट का सेट उपलब्ध कराता है. कंपैटबिलिटी टेस्ट सुइट (सीटीएस) टेस्ट, और CTS की पुष्टि करने वाला टूल, वाई-फ़ाई की पुष्टि करने के लिए जांच करता है ऐसी सुविधा जिसकी आपको जानकारी है. वाई-फ़ाई अवेयर की जांच करने के लिए, इनका इस्तेमाल भी किया जा सकता है: विक्रेता टेस्ट सुइट (वीटीएस).

यूनिट टेस्ट

वाई-फ़ाई अवेयर पैकेज की जांच, इसका इस्तेमाल करके की जाती हैं:

सर्विस टेस्ट:

atest com.android.server.wifi.aware

मैनेजर टेस्ट:

atest android.net.wifi.aware

कंपैटबिलिटी टेस्ट सुइट (सीटीएस) के टेस्ट

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

सीटीएस टेस्ट को ट्रिगर करने के लिए इनका इस्तेमाल किया जा सकता है:

atest SingleDeviceTest

सीटीएस वेरिफ़ायर टेस्ट

CTS Verifier, दो डिवाइसों का इस्तेमाल करके वाई-फ़ाई अवेयर की जांच की पुष्टि करता है: एक जांच डिवाइस और किसी जाने-पहचाने गुड डिवाइस को चुनें. जांच करने के लिए, CTS Verifier खोलें और 'वाई-फ़ाई अवेयर टेस्ट' शीर्षक वाले सेक्शन पर जाएं.