Android, वाई-फ़ाई हॉटस्पॉट (सॉफ़्ट एपी) की सुविधा देता है. इसमें वाई-फ़ाई हॉटस्पॉट और सिर्फ़ सीमित दायरे में इस्तेमाल होने वाले वाई-फ़ाई हॉटस्पॉट के ज़रिए टेदरिंग की सुविधा भी शामिल है.
सॉफ़्ट एपी की सुविधा का इस्तेमाल करके, ये कॉन्फ़िगरेशन किए जा सकते हैं:
- SSID और BSSID
- सुरक्षा का टाइप (इसमें WPA3 भी शामिल है)
- छिपा हुआ SSID
- ऑपरेटिंग बैंड और चैनल (इसमें ACS भी शामिल है)
- अनुमति वाले क्लाइंट की ज़्यादा से ज़्यादा संख्या
- अपने-आप बंद होने की सुविधा के लिए टाइम आउट की वैल्यू
- अनुमति वाली सूची और ब्लॉक की गई सूची, ताकि उपयोगकर्ता कनेक्ट किए गए डिवाइसों को कंट्रोल कर सकें
- एपी के BSSID के लिए, एमएसी पते को बदलने की सुविधा का लेवल
- 802.11ax और 802.11be
डिवाइस की सुविधाओं के आधार पर, इन कंट्रोल की उपलब्धता तय होती है. Android 11 में, इन सुविधाओं को पाने के लिए एपीआई उपलब्ध कराए गए हैं. डिवाइस बनाने वाली कंपनियां, ओवरले का इस्तेमाल करके डिवाइस की बुनियादी सुविधाओं के बारे में भी बता सकती हैं.
हॉटस्पॉट एपीआई की मदद से ऐप्लिकेशन डेवलप करना
टेथर्ड वाई-फ़ाई हॉटस्पॉट को डिफ़ॉल्ट रूप से लागू करने की सुविधा, Android ओपन सोर्स प्रोजेक्ट (AOSP) के सेटिंग ऐप्लिकेशन में मिलती है. हालांकि, यह सॉफ्ट एपी कॉन्फ़िगरेशन के लिए सभी एपीआई का इस्तेमाल नहीं करता है.
हॉटस्पॉट या सिर्फ़ सीमित दायरे में इस्तेमाल होने वाले हॉटस्पॉट के ज़रिए टेदरिंग की सुविधा देने के लिए, ऐप्लिकेशन को ये काम करने होंगे:
टेदर किए गए हॉटस्पॉट के लिए
WifiManager#registerSoftApCallbackया सिर्फ़ लोकल हॉटस्पॉट के लिएWifiManager#registerLocalOnlyHotspotSoftApCallbackका इस्तेमाल करके, डिवाइस की सुविधाओं के बारे में जानने के लिए कॉलबैक रजिस्टर करें.SoftApCallbackकॉलबैक फ़ंक्शन, ये तरीके उपलब्ध कराता है:SoftApCallback#onCapabilityChanged: इससे डिवाइस की क्षमताओं के बारे में जानकारी मिलती है. इसमें ज़्यादा से ज़्यादा क्लाइंट के साथ काम करने की क्षमता और यह जानकारी शामिल होती है कि डिवाइस, SAE या ACS के साथ काम करता है या नहीं.SoftApCallback#onInfoChanged: इससे चालू किए गए सॉफ़्ट एपी के बारे में जानकारी मिलती है. यह जानकारी सिर्फ़ एक बार मान्य होती है. इसमें बैंड और फ़्रीक्वेंसी की जानकारी भी शामिल होती है.SoftApCallback#onConnectedClientsChanged: इससे कनेक्ट किए गए क्लाइंट की सूची मिलती है. हर क्लाइंट के लिए, आपको MAC पता मिल सकता है. आईपी पते की जानकारी पाने के लिए,TetheringEventCallback#onClientsChangedकॉलबैक का इस्तेमाल करें.SoftApCallback#onStateChanged: इससे Soft AP के चालू और बंद होने की स्थिति के बारे में अपडेट मिलते हैं.SoftApCallback#onBlockedClientConnecting: इससे ब्लॉक किए गए क्लाइंट की जानकारी मिलती है. साथ ही, ब्लॉक करने की वजह भी बताई जाती है. जैसे, डिवाइस पर कनेक्ट किए जा सकने वाले क्लाइंट की संख्या ज़्यादा हो गई है या क्लाइंट को कनेक्ट करने की अनुमति नहीं है.SoftApCallback#onClientsDisconnected: इससे, डिसकनेक्ट किए गए क्लाइंट की सूची मिलती है. हर क्लाइंट के लिए, आपको कनेक्शन बंद होने की वजह मिल सकती है.
टेदर किए गए हॉटस्पॉट के लिए:
WifiManager#setSoftApConfigurationतरीके को कॉल करके औरSoftApConfigurationइंस्टेंस देकर, टेदरिंग के लिए सॉफ़्ट एपी कॉन्फ़िगरेशन कॉन्फ़िगर करें.SoftApConfiguration.Builderक्लास का इस्तेमाल करके,SoftApConfigurationबनाएं.TetheringManager#startTetheringपर, टेदरिंग वाले तरीके को कॉल करके टेदरिंग शुरू करें.
सिर्फ़ लोकल हॉटस्पॉट के लिए:
WifiManager#startLocalOnlyHotspotतरीके का इस्तेमाल करके, किसी खास सॉफ़्ट एपी कॉन्फ़िगरेशन के साथ, सिर्फ़ लोकल हॉटस्पॉट शुरू करें.
अनुमति वाली सूची और ब्लॉकलिस्ट लागू करना
आम तौर पर, कैरियर की यह ज़रूरी शर्त होती है कि वह उपयोगकर्ता को उन डिवाइसों को कंट्रोल करने की सुविधा दे जिन्हें सॉफ़्ट एपी से कनेक्ट करने की अनुमति है. ऐसा करने के कई तरीके हैं:
SoftApConfiguration.Builder#setMaxNumberOfClientsका इस्तेमाल करके, सॉफ़्ट एपी से कनेक्ट किए जा सकने वाले डिवाइसों की ज़्यादा से ज़्यादा संख्या को सीमित करें. पक्का करें कि आपने डिवाइस पर इस्तेमाल किए जा सकने वाले क्लाइंट की अधिकतम संख्या से कम संख्या डाली हो. आपको ज़्यादा से ज़्यादाSoftApCapability#getMaxSupportedClientsमिल सकते हैं.अनुमति देने और ब्लॉक करने की सूचियों का इस्तेमाल करके डाइनैमिक कंट्रोल उपलब्ध कराएं:
- सॉफ़्ट एपी का डिफ़ॉल्ट कॉन्फ़िगरेशन, सभी डिवाइसों को सॉफ़्ट एपी से कनेक्ट करने की अनुमति देता है. हालांकि, जिन डिवाइसों के मैक पते
SoftApConfiguration.Builder#setBlockedClientListमें जोड़े गए हैं उन्हें कनेक्ट करने की अनुमति नहीं मिलती. - अगर Soft AP को
SoftApConfiguration.Builder#setClientControlByUserEnabled(true)के साथ कॉन्फ़िगर किया गया है, तो अनुमति वाली सूची का इस्तेमाल किया जाता है.- जिन डिवाइसों के MAC पते
SoftApConfiguration.Builder#setBlockedClientListमें हैं उन्हें नेटवर्क से कनेक्ट करने की अनुमति नहीं है. SoftApConfiguration.Builder#setAllowedClientListमें मौजूद मैक पते वाले सभी डिवाइसों को कनेक्ट करने की अनुमति है.- अन्य सभी डिवाइसों (यानी कि जिन डिवाइसों के मैक पते, अनुमति या ब्लॉक की गई सूची में नहीं हैं) को असोसिएशन से ब्लॉक कर दिया जाता है. हालांकि,
SoftApCallback#onBlockedClientConnectingको कॉल किया जाता है, ताकि कंट्रोल करने वाला ऐप्लिकेशन (यानी कि Settings ऐप्लिकेशन) कोई कार्रवाई कर सके. उदाहरण के लिए, उपयोगकर्ता से पुष्टि करने के लिए कहना. इसके बाद, उपयोगकर्ता के व्यवहार के आधार पर डिवाइस को अनुमति या ब्लॉक की गई सूची में जोड़ना.
- जिन डिवाइसों के MAC पते
ध्यान दें कि डिवाइस, सिर्फ़ तब अनुमति वाली सूची की सुविधा का इस्तेमाल कर सकते हैं, जब डिवाइस पर यह सुविधा काम करती हो.
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)का इस्तेमाल करके, यह पुष्टि की जा सकती है कि डिवाइस पर Health Connect काम करता है या नहीं.- सॉफ़्ट एपी का डिफ़ॉल्ट कॉन्फ़िगरेशन, सभी डिवाइसों को सॉफ़्ट एपी से कनेक्ट करने की अनुमति देता है. हालांकि, जिन डिवाइसों के मैक पते
लागू करना
हॉटस्पॉट के ज़रिए इंटरनेट शेयर करने की सुविधा या सिर्फ़ लोकल हॉटस्पॉट की सुविधा देने के लिए, डिवाइस बनाने वाली कंपनियों को सेटिंग ऐप्लिकेशन, फ़्रेमवर्क, और एचएएल/फ़र्मवेयर की सहायता देनी होगी:
Settings ऐप्लिकेशन: Android Open Source Project (AOSP) का Settings ऐप्लिकेशन, एसएसआईडी और सुरक्षा क्रेडेंशियल के साथ टेदरिंग हॉटस्पॉट को कॉन्फ़िगर करने के लिए एक बेसलाइन उपलब्ध कराता है. इस कोड का इस्तेमाल, बिना किसी बदलाव के किया जा सकता है. इसके अलावा, इसे हॉटस्पॉट एपीआई की मदद से ऐप्लिकेशन डेवलप करना में बताए गए तरीके के मुताबिक, अतिरिक्त सुविधाओं के लिए भी इस्तेमाल किया जा सकता है.
फ़्रेमवर्क: AOSP फ़्रेमवर्क कोड, हॉटस्पॉट एपीआई की मदद से ऐप्लिकेशन डेवलप करना में बताई गई सभी सुविधाओं के साथ काम करता है.
हॉटस्पॉट के लिए एचएएल/फ़र्मवेयर: एचआईडीएल
IHostapd.halवर्शन 1.2 या इसके बाद का वर्शन या एआईडीएल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)के ज़रिए, कंट्रोल करने वाले ऐप्लिकेशन (सेटिंग ऐप्लिकेशन) को भेजी जाती है.- (Android 13 से उपलब्ध है)
config_wifiSoftapPassphraseAsciiEncodableCheck: सॉफ़्ट एपी के लंबे पासवर्ड को ASCII में एन्कोड किया जाना चाहिए या नहीं. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: यह तय करता है कि जब कोई नया डिवाइस काम करता है, तब क्लाउड कॉन्फ़िगरेशन को वापस लाने के दौरान, बैंड की सेटिंग के कॉन्फ़िगरेशन को अपने-आप ड्यूअल बैंड में अपग्रेड करना है या नहीं.- (Android 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_supportedconfig_wifi_softap_sae_supported- (Android 13 और इसके बाद के वर्शन पर उपलब्ध है)
config_wifiSoftapOweTransitionSupported - (Android 13 और इसके बाद के वर्शन पर उपलब्ध है)
config_wifiSoftapOweSupported config_wifi_softap_ieee80211ac_supportedconfig_wifiSoftapIeee80211axSupported- (Android 13 और इसके बाद के वर्शन पर उपलब्ध है)
config_wifiSoftapIeee80211beSupported config_wifiSoftapMacAddressCustomizationSupportedconfig_wifiSoftapHeSuBeamformerSupportedconfig_wifiSoftapHeSuBeamformeeSupportedconfig_wifiSoftapHeMuBeamformerSupportedconfig_wifiSoftapHeTwtSupportedconfig_wifiSoftap24ghzSupportedconfig_wifiSoftap5ghzSupportedconfig_wifiSoftap6ghzSupportedconfig_wifiSoftap60ghzSupportedconfig_wifiSoftapAcsIncludeDfs
सत्यापन
Android, हॉटस्पॉट की सुविधा की पुष्टि करने के लिए, यूनिट टेस्ट और Compatibility Test Suite (CTS) टेस्ट का एक सेट उपलब्ध कराता है. हॉटस्पॉट की सुविधा की जांच, Vendor Test Suite (VTS) का इस्तेमाल करके भी की जा सकती है.
यूनिट टेस्ट
इन टेस्ट का इस्तेमाल करके, हॉटस्पॉट पैकेज की पुष्टि करें.
सेवा की जांच:
atest packages/modules/Wifi/service/tests/wifitests/मैनेजर के टेस्ट:
atest packages/modules/Wifi/framework/tests/
Compatibility Test Suite (CTS) टेस्ट
हॉटस्पॉट सुविधा की पुष्टि करने के लिए, सीटीएस टेस्ट का इस्तेमाल करें. सीटीएस को यह पता चल जाता है कि सुविधा कब चालू की गई है. साथ ही, यह उससे जुड़े टेस्ट को अपने-आप शामिल कर लेता है.
CTS टेस्ट शुरू करने के लिए, यह कमांड चलाएं:
atest android.net.wifi.cts.WifiManagerTestVendor Test Suite (VTS)
अगर एचआईडीएल इंटरफ़ेस लागू किया गया है, तो यह कमांड चलाएं:
atest VtsHalWifiHostapdV1_2Targetअगर एआईडीएल इंटरफ़ेस लागू किया गया है, तो यह कमांड चलाएं:
atest VtsHalHostapdTargetTest