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

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

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

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

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

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

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

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

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

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

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

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

एक बंधे हुए हॉटस्पॉट के लिए:

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

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

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

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

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

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

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

      • वे सभी डिवाइस जिनके MAC पते SoftApConfiguration.Builder#setBlockedClientList में हैं, उन्हें एसोसिएशन से ब्लॉक कर दिया गया है।
      • वे सभी डिवाइस जिनके MAC पते SoftApConfiguration.Builder#setAllowedClientList में हैं, उन्हें संबद्धता की अनुमति है।
      • अन्य सभी डिवाइस (अर्थात, वे डिवाइस जिनके MAC पते अनुमति या ब्लॉक सूची में नहीं हैं) को एसोसिएशन से ब्लॉक कर दिया गया है, लेकिन 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 : सॉफ्ट एपी पासफ़्रेज़ को 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)

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

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

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

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

atest android.net.wifi.cts.WifiManagerTest

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

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

atest VtsHalWifiHostapdV1_2Target

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

atest VtsHalHostapdTargetTest