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

Android, टेदरिंग के साथ-साथ वाई-फ़ाई हॉटस्पॉट (सॉफ़्ट एपी) के साथ काम करता है वाई-फ़ाई हॉटस्पॉट और सिर्फ़-स्थानीय वाई-फ़ाई हॉटस्पॉट के ज़रिए.

सॉफ़्ट एपी सुविधा की मदद से, इन्हें कॉन्फ़िगर किया जा सकता है:

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

डिवाइस की क्षमताओं से यह तय होता है कि ये कंट्रोल उपलब्ध होंगे या नहीं. Android 11 में इन सुविधाओं का ऐक्सेस पाने के लिए एपीआई उपलब्ध कराए गए हैं सुविधाएं. डिवाइस बनाने वाली कंपनियां भी यह तय कर सकती हैं कि डिवाइस में कौन-कौनसी अनुमतियां उपलब्ध हैं का इस्तेमाल किया जा सकता है.

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

हॉटस्पॉट एपीआई की मदद से ऐप्लिकेशन डेवलप करना

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

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

  1. इसका इस्तेमाल करके डिवाइस की सुविधाएं पाने के लिए, कॉलबैक को रजिस्टर करें टेदर किए गए हॉटस्पॉट के लिए WifiManager#registerSoftApCallback या सिर्फ़ स्थानीय जगह के लिए WifiManager#registerLocalOnlyHotspotSoftApCallback हॉटस्पॉट.

    SoftApCallback कॉलबैक ये तरीके उपलब्ध कराता है:

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

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

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

सिर्फ़ लोकल हॉटस्पॉट के लिए:

  1. इसके हिसाब से, खास सॉफ़्ट एपी कॉन्फ़िगरेशन के साथ सिर्फ़-स्थानीय हॉटस्पॉट चालू करें कॉल करो WifiManager#startLocalOnlyHotspot तरीका.

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

मोबाइल और इंटरनेट सेवा देने वाली एक सामान्य शर्त यह है कि उपयोगकर्ता को ऐसे डिवाइस जिन्हें सॉफ़्ट एपी से असोसिएट करने की अनुमति है. कई ये तरीके अपनाएं:

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

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

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

    ध्यान दें कि डिवाइस अनुमति वाली सूची की सुविधा का इस्तेमाल सिर्फ़ तब कर सकते हैं, जब डिवाइस पर काम करता है. इनका इस्तेमाल करके, डिवाइस पर काम करने की सुविधा की पुष्टि की जा सकती है SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT).

लागू करना

हॉटस्पॉट के ज़रिए टेदरिंग की सुविधा देने या सिर्फ़-स्थानीय हॉटस्पॉट पर काम करने के लिए, डिवाइस बनाने वाली कंपनियों को सेटिंग ऐप्लिकेशन, फ़्रेमवर्क, और HAL/फ़र्मवेयर समर्थन:

पसंद के मुताबिक बनाएं

लागू करने की प्रोसेस को पसंद के मुताबिक बनाने के लिए, डिवाइस मैन्युफ़ैक्चरर को जो मोबाइल और इंटरनेट सेवा देने वाली कंपनी के कॉन्फ़िगरेशन की जानकारी देते हैं. 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: डाइनैमिक है या नहीं एपी मोड में देश के कोड को अपडेट करने की सुविधा, डिवाइस पर काम करती है
  • चैनल से जुड़ी सहायता: 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

पुष्टि करें

Android, यूनिट टेस्ट और कंपैटबिलिटी टेस्ट सुइट (सीटीएस) टेस्ट का सेट उपलब्ध कराता है हॉटस्पॉट की सुविधा की पुष्टि करें. हॉटस्पॉट की सुविधा की जांच करने के लिए, इनका इस्तेमाल भी किया जा सकता है वेंडर टेस्ट सुइट (वीटीएस).

यूनिट टेस्ट

नीचे दिए गए टेस्ट का इस्तेमाल करके हॉटस्पॉट पैकेज की पुष्टि करें.

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

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • मैनेजर टेस्ट:

    atest packages/modules/Wifi/framework/tests/
    

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

हॉटस्पॉट की सुविधा की पुष्टि करने के लिए, सीटीएस जांच का इस्तेमाल करें. सीटीएस यह पता लगाता है कि सुविधा कब चालू है. साथ ही, वह अपने-आप संबंधित परीक्षण.

सीटीएस टेस्ट को ट्रिगर करने के लिए, इसे चलाएं:

atest android.net.wifi.cts.WifiManagerTest

वेंडर टेस्ट सुइट (वीटीएस)

अगर HIDL इंटरफ़ेस लागू है, तो चलाएं:

atest VtsHalWifiHostapdV1_2Target

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

atest VtsHalHostapdTargetTest