वाई-फाई हॉटस्पॉट (सॉफ्ट एपी)

एंड्रॉइड वाई-फाई हॉटस्पॉट (सॉफ्ट एपी) के लिए समर्थन प्रदान करता है जिसमें वाई-फाई हॉटस्पॉट और स्थानीय-केवल वाई-फाई हॉटस्पॉट के माध्यम से टेदरिंग शामिल है।

सॉफ्ट एपी सुविधा निम्नलिखित के विन्यास की अनुमति देती है:

  • एसएसआईडी और बीएसएसआईडी
  • सुरक्षा प्रकार (WPA3 सहित)
  • छिपा हुआ SSID
  • ऑपरेटिंग बैंड और चैनल (एसीएस सहित)
  • अनुमत ग्राहकों की अधिकतम संख्या
  • स्वतः शटडाउन समयबाह्य मान
  • संबंधित उपकरणों के उपयोगकर्ता नियंत्रण की अनुमति देने के लिए अनुमति सूची और ब्लॉकलिस्ट
  • एपी बीएसएसआईडी के लिए मैक यादृच्छिकरण का स्तर
  • 802.11ax और 802.11be

डिवाइस क्षमताएं इन नियंत्रणों की उपलब्धता निर्धारित करती हैं। एंड्रॉइड 11 इन क्षमताओं को प्राप्त करने के लिए एपीआई पेश करता है। डिवाइस निर्माता ओवरले का उपयोग करके आधार डिवाइस क्षमताओं को भी निर्दिष्ट कर सकते हैं।

ध्यान दें कि कुछ एपीआई सिस्टम एपीआई हैं और अनुमतियों के माध्यम से प्रतिबंधित हैं ताकि केवल सिस्टम का सेटिंग ऐप ही उन तक पहुंच सके।

हॉटस्पॉट एपीआई के साथ ऐप्स विकसित करना

AOSP सेटिंग्स ऐप द्वारा एक टीथर्ड वाई-फाई हॉटस्पॉट का एक डिफ़ॉल्ट कार्यान्वयन प्रदान किया जाता है, हालांकि यह सॉफ्ट एपी कॉन्फ़िगरेशन के लिए सभी एपीआई का प्रयोग नहीं करता है।

हॉटस्पॉट या केवल स्थानीय हॉटस्पॉट के माध्यम से टेदरिंग का समर्थन करने के लिए, ऐप को निम्नलिखित कार्य करने चाहिए:

  1. एक टेदर किए गए हॉटस्पॉट के लिए WifiManager#registerLocalOnlyHotspotSoftApCallback या केवल-स्थानीय हॉटस्पॉट के लिए WifiManager#registerSoftApCallback का उपयोग करके डिवाइस क्षमताओं को प्राप्त करने के लिए कॉलबैक पंजीकृत करें।

    SoftApCallback कॉलबैक निम्नलिखित विधियाँ प्रदान करता है:

    • SoftApCallback#onCapabilityChanged : समर्थित क्लाइंट की अधिकतम संख्या और SAE या ACS समर्थित हैं या नहीं, सहित डिवाइस क्षमताओं के बारे में जानकारी प्रदान करता है।
    • SoftApCallback#onInfoChanged : चल रहे सॉफ्ट एपी के बारे में जानकारी प्रदान करता है (केवल एक बार शुरू होने पर मान्य), जिसमें बैंड और आवृत्ति जानकारी शामिल है।
    • SoftApCallback#onConnectedClientsChanged : कनेक्टेड क्लाइंट की सूची प्रदान करता है। प्रत्येक क्लाइंट के लिए, आप MAC पता प्राप्त कर सकते हैं। IP जानकारी प्राप्त करने के लिए, TetheringEventCallback#onClientsChanged कॉलबैक का उपयोग करें।
    • SoftApCallback#onStateChanged : सॉफ्ट एपी की स्थिति पर अपडेट प्रदान करता है क्योंकि यह सक्षम और अक्षम हो जाता है।
    • SoftApCallback#onBlockedClientConnecting : ब्लॉक किए गए क्लाइंट को ब्लॉक करने के निम्नलिखित कारणों में से एक के साथ जानकारी प्रदान करता है: डिवाइस क्लाइंट की अधिकतम संख्या तक पहुंच गया है कि वह समर्थन कर सकता है या क्लाइंट कनेक्ट करने के लिए स्पष्ट रूप से अधिकृत नहीं है।

एक टेदर हॉटस्पॉट के लिए:

  1. WifiManager#setSoftApConfiguration विधि को कॉल करके और एक SoftApConfiguration इंस्टेंस प्रदान करके टेदरिंग के लिए सॉफ्ट एपी कॉन्फ़िगरेशन को कॉन्फ़िगर करें। SoftApConfiguration.Builder वर्ग का उपयोग करके SoftApConfiguration का निर्माण करें।
  2. TetheringManager#startTethering पर टेदरिंग विधि को कॉल करके टेदरिंग प्रारंभ करें।

केवल स्थानीय हॉटस्पॉट के लिए:

  1. WifiManager#startLocalOnlyHotspot विधि को कॉल करके विशिष्ट सॉफ्ट AP कॉन्फ़िगरेशन के साथ केवल-स्थानीय हॉटस्पॉट प्रारंभ करें।

अनुमति और ब्लॉक सूचियों को लागू करना

एक विशिष्ट वाहक आवश्यकता उपयोगकर्ता को उन उपकरणों के नियंत्रण प्रदान करना है जिन्हें सॉफ्ट एपी से संबद्ध करने की अनुमति है। ऐसा करने के लिए कई तंत्र हैं:

  • SoftApConfiguration.Builder#setMaxNumberOfClients का उपयोग करके सॉफ्ट AP से संबद्ध किए जा सकने वाले उपकरणों की अधिकतम संख्या को सीमित करें। एक संख्या निर्दिष्ट करना सुनिश्चित करें जो डिवाइस द्वारा समर्थित ग्राहकों की अधिकतम संख्या से कम हो। आप अधिकतम संख्या SoftApCapability#getMaxSupportedClients से प्राप्त कर सकते हैं।
  • अनुमति और ब्लॉक सूचियों का उपयोग करके गतिशील नियंत्रण प्रदान करें:

    • सॉफ्ट एपी का डिफ़ॉल्ट कॉन्फ़िगरेशन सभी उपकरणों को सॉफ्ट एपी से संबद्ध करने की अनुमति देता है, उन उपकरणों को छोड़कर जिनके मैक पते सॉफ़्टएप कॉन्फ़िगरेशन में जोड़े जाते हैं। SoftApConfiguration.Builder#setBlockedClientList
    • यदि सॉफ्ट AP को SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) के साथ कॉन्फ़िगर किया गया है, तो अनुमति सूची का उपयोग किया जाता है।

      • सभी डिवाइस जिनके MAC पते SoftApConfiguration.Builder#setBlockedClientList में हैं, उन्हें संबद्धता से ब्लॉक कर दिया गया है।
      • सभी डिवाइस जिनके MAC पते SoftApConfiguration.Builder#setAllowedClientList में हैं, को संबद्धता की अनुमति है।
      • अन्य सभी डिवाइस (अर्थात, डिवाइस जिनके मैक पते अनुमति या ब्लॉक सूची में नहीं हैं) को एसोसिएशन से ब्लॉक कर दिया गया है, लेकिन SoftApCallback#onBlockedClientConnecting को कॉल किया जाता है, जिससे कंट्रोलिंग ऐप (यानी सेटिंग्स ऐप) को कार्रवाई करने की अनुमति मिलती है। उदाहरण के लिए, उपयोगकर्ता से पुष्टि के लिए पूछना और फिर उपयोगकर्ता के व्यवहार के आधार पर डिवाइस को अनुमति सूची या ब्लॉक सूची में जोड़ना।

    ध्यान दें कि डिवाइस केवल अनुमति सूची कार्यक्षमता का उपयोग कर सकते हैं यदि यह डिवाइस पर समर्थित है। आप SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) का उपयोग करके डिवाइस समर्थन को सत्यापित कर सकते हैं।

कार्यान्वयन

हॉटस्पॉट के माध्यम से टेदरिंग का समर्थन करने के लिए या केवल स्थानीय हॉटस्पॉट का समर्थन करने के लिए, डिवाइस निर्माताओं को सेटिंग्स ऐप, फ्रेमवर्क और एचएएल/फर्मवेयर समर्थन प्रदान करना होगा:

  • सेटिंग्स ऐप: एओएसपी सेटिंग्स ऐप एसएसआईडी और सुरक्षा क्रेडेंशियल के साथ टेदरिंग हॉटस्पॉट को कॉन्फ़िगर करने के लिए आधार रेखा प्रदान करता है। हॉटस्पॉट एपीआई के साथ विकासशील ऐप्स में वर्णित अतिरिक्त क्षमताओं को प्रदान करने के लिए इस कोड का उपयोग किया जा सकता है या संशोधित किया जा सकता है।

  • फ्रेमवर्क: एओएसपी फ्रेमवर्क कोड हॉटस्पॉट एपीआई के साथ विकासशील ऐप्स में वर्णित सभी कार्यक्षमताओं का समर्थन करता है।

  • हॉटस्पॉट के लिए HAL/फर्मवेयर: या तो HIDL IHostapd.hal संस्करण 1.2 या उच्चतर, या AIDL IHostapd.aidl

अनुकूलन

कार्यान्वयन को अनुकूलित करने के लिए, डिवाइस निर्माताओं को निम्नलिखित ओवरले और कैरियर कॉन्फ़िगरेशन को कॉन्फ़िगर करना चाहिए, जो packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml में प्रलेखित हैं:

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : डिफ़ॉल्ट शटडाउन टाइमआउट अंतराल। केवल तभी मान्य है जब SoftApConfiguration#setAutoShutdownEnabled सक्षम हो। SoftApConfiguration#setShutdownTimeoutMillis का उपयोग करके ओवरराइड किया जा सकता है।
  • config_wifiHardwareSoftapMaxClientCount : समर्थित क्लाइंट की अधिकतम संख्या के लिए हार्डवेयर सीमा। डिवाइस द्वारा समर्थित ग्राहकों की अधिकतम संख्या न्यूनतम हार्डवेयर और वाहक बाधाओं ( CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT द्वारा निर्दिष्ट) है। अंतिम परिणाम ऐप को SoftApCapabilities#getMaxSupportedClients के साथ प्रदान किया जाता है।
  • config_wifiSofapClientForceDisconnectSupported : क्या डिवाइस में क्लाइंट को डिस्कनेक्ट करने के लिए बाध्य करने की क्षमता है। अनुमति दें और सूचियों को ब्लॉक करें सक्षम करने के लिए आवश्यक है। SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) ) के माध्यम से कंट्रोलिंग ऐप (सेटिंग ऐप) से संचार किया गया।
  • (13 से उपलब्ध) config_wifiSoftapPassphraseAsciiEncodableCheck : सॉफ्ट AP पासफ़्रेज़ को ASCII एन्कोड करने योग्य होना आवश्यक है या नहीं।
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported : क्लाउड कॉन्फ़िगरेशन के दौरान बैंड सेटिंग कॉन्फ़िगरेशन को स्वचालित रूप से दोहरे बैंड में अपग्रेड करना है या नहीं, जब कोई नया डिवाइस समर्थित होता है।
  • (13 से उपलब्ध) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled : क्या सह-अस्तित्व प्रबंधन से बचने के लिए फ्रेमवर्क स्वचालित रूप से बैंड कॉन्फ़िगरेशन में निचले बैंड को जोड़ता है।
  • config_wifiSoftApDynamicCountryCodeUpdateSupported : AP मोड में डायनेमिक कंट्री कोड अपडेट डिवाइस पर समर्थित हैं या नहीं
  • चैनल समर्थन: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , config_wifiSoftap6gChannelList और config_wifiSoftap60gChannelList
  • किसी नए डिवाइस पर हॉटस्पॉट कॉन्फ़िगरेशन को पुनर्स्थापित करते समय संबंधित प्रविष्टियाँ डिफ़ॉल्ट पर रीसेट हैं या नहीं, यह निर्दिष्ट करने के लिए समर्थन पुनर्स्थापित करें: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig ध्यान दें कि ये डिफ़ॉल्ट रूप से true पर सेट हैं, जिसका अर्थ है कि मान रीसेट हो गए हैं। यह महत्वपूर्ण है यदि नया डिवाइस कॉन्फ़िगरेशन का समर्थन नहीं करता है।
  • हार्डवेयर क्षमताएं:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (13 से उपलब्ध) config_wifiSoftapOweTransitionSupported
    • (13 से उपलब्ध) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (13 से उपलब्ध) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

मान्यकरण

हॉटस्पॉट सुविधा को मान्य करने के लिए एंड्रॉइड यूनिट टेस्ट, इंटीग्रेशन टेस्ट (एंड्रॉइड कनेक्टिविटी टेस्ट सूट, या एसीटीएस), और कम्पैटिबिलिटी टेस्ट सूट (सीटीएस) टेस्ट का एक सेट प्रदान करता है। हॉटस्पॉट सुविधा का परीक्षण विक्रेता टेस्ट सूट (वीटीएस) का उपयोग करके भी किया जा सकता है।

यूनिट परीक्षण

निम्नलिखित परीक्षणों का उपयोग करके हॉटस्पॉट पैकेज को सत्यापित करें।

  • सेवा परीक्षण:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • प्रबंधक परीक्षण:

    atest packages/modules/Wifi/framework/tests/
    

एकीकरण परीक्षण (ACTS)

tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py में स्थित ACTS हॉटस्पॉट टेस्ट सूट, हॉटस्पॉट फीचर के कार्यात्मक परीक्षणों को लागू करता है।

संगतता परीक्षण सूट (सीटीएस) परीक्षण

हॉटस्पॉट सुविधा को मान्य करने के लिए सीटीएस परीक्षणों का उपयोग करें। सुविधा सक्षम होने पर सीटीएस पता लगाता है और स्वचालित रूप से संबंधित परीक्षण शामिल करता है।

सीटीएस परीक्षण ट्रिगर करने के लिए, चलाएँ:

atest android.net.wifi.cts.WifiManagerTest

विक्रेता परीक्षण सूट (वीटीएस)

यदि HIDL इंटरफ़ेस लागू किया गया है, तो चलाएँ:

atest VtsHalWifiHostapdV1_2Target

यदि एआईडीएल इंटरफ़ेस लागू किया गया है, तो चलाएँ:

atest VtsHalHostapdTargetTest