इस पेज पर, Android 12 में इस्तेमाल किए गए एल्गोरिदम और तरीकों के बारे में बताया गया है. इनका इस्तेमाल, वाई-फ़ाई नेटवर्क चुनने और उनके बीच स्विच करने के लिए किया जाता है. Android, कनेक्ट किए गए नेटवर्क की क्वालिटी का लगातार आकलन करता है. साथ ही, उपलब्ध नेटवर्क की क्वालिटी का भी आकलन करता है.
अपने-आप कनेक्ट होने की सुविधा की अवधि
इस सेक्शन में बताया गया है कि Android डिवाइस, उपलब्ध वाई-फ़ाई नेटवर्क का आकलन कैसे करता है और उनसे कैसे कनेक्ट होता है.
डिवाइस, उपलब्ध नेटवर्क को इनमें से किसी एक तरीके से स्कैन करता है. यह इस बात पर निर्भर करता है कि स्क्रीन चालू है या बंद.
- स्क्रीन चालू होने पर (कनेक्ट किया गया): Android कनेक्टिविटी सबसिस्टम, समय-समय पर यह आकलन करता है कि मौजूदा कनेक्शन, स्कैनिंग को स्किप करने के लिए काफ़ी अच्छा है या नहीं. यह आकलन, स्क्रीन चालू होने पर स्कैन किए जाने वाले डिवाइसों के लिए तय किए गए नियमों के आधार पर किया जाता है. अगर कनेक्शन की स्पीड इतनी अच्छी नहीं है कि स्कैनिंग को स्किप किया जा सके, तो कनेक्टिविटी सबसिस्टम, उपलब्ध नेटवर्क का पता लगाने के लिए स्कैन शुरू कर देता है. इन स्कैन को सिस्टम के अन्य कॉम्पोनेंट भी ट्रिगर कर सकते हैं. जैसे, जगह की जानकारी देने वाला सिस्टम या कोई ऐप्लिकेशन (इसमें Settings ऐप्लिकेशन भी शामिल है).
- स्क्रीन चालू होने पर (डिस्कनेक्ट किया गया): Android कनेक्टिविटी सबसिस्टम, एक्सपोनेंशियल बैकऑफ़ शेड्यूल के हिसाब से समय-समय पर स्कैन करता है. यह मॉड्यूल, स्कैन किए गए सभी नतीजों का आकलन करता है. साथ ही, कनेक्ट करने के लिए सबसे अच्छे नेटवर्क को चुनने की कोशिश करता है.
- स्क्रीन बंद होने पर (डिसकनेक्ट होने पर): स्क्रीन बंद होते ही, होस्ट सीपीयू फ़र्मवेयर को पसंदीदा नेटवर्क की सूची के साथ प्रोग्राम करता है. इसके लिए, पसंदीदा नेटवर्क ऑफलोड (पीएनओ) स्कैन का इस्तेमाल किया जाता है. अगर फ़र्मवेयर को कोई पसंदीदा नेटवर्क मिलता है, तो वह होस्ट को चालू कर देता है. AOSP यह मानता है कि डिवाइस पर PNO की सुविधा काम करती है.
WifiManager#allowAutojoinGlobal(boolean)तरीके का इस्तेमाल करके, अपने-आप कनेक्ट होने की सुविधा बंद की जा सकती है. यह एक खास एपीआई है. डिवाइस बनाने वाली कंपनियां, इसका इस्तेमाल कुछ ही मामलों में कर सकती हैं. उदाहरण के लिए, मोबाइल के अलावा किसी अन्य डिवाइस पर, पहले से कॉन्फ़िगर किया गया डिवाइस.अगर डिवाइस कनेक्ट है और
config_wifi_framework_enable_associated_network_selectionओवरले कोfalseपर सेट किया गया है, तो कनेक्टिविटी स्कैन नहीं किए जाते हैं. साथ ही, स्कैन के नतीजों से नेटवर्क नहीं चुना जाता है. जब डिवाइस डिसकनेक्ट हो जाता है, तो इस सेटिंग का कोई असर नहीं पड़ता. इसका मतलब है कि कनेक्टिविटी स्कैन और नेटवर्क चुनने की प्रोसेस अब भी जारी रहती है.स्कैन के नतीजों का आकलन किया जाता है.
अगर डिवाइस किसी वाई-फ़ाई नेटवर्क से कनेक्ट है, तो फ़्रेमवर्क यह आकलन करता है कि क्या मौजूदा नेटवर्क, नेटवर्क चुनने की प्रोसेस को स्किप करने के लिए काफ़ी अच्छा है.
किसी नेटवर्क को नेटवर्क चुनने की सुविधा को स्किप करने के लिए काफ़ी अच्छा तब माना जाता है, जब इनमें से कोई भी शर्त पूरी होती हो:
- पिछली बार नेटवर्क चुनने के बाद, 10 सेकंड से कम समय बीता हो.
- उपयोगकर्ता ने हाल ही में नेटवर्क से मैन्युअल तरीके से कनेक्ट किया हो. यहां हाल ही में का मतलब,
config_wifiSufficientDurationAfterUserSelectionMillisecondsओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. - डिवाइस, ऑनलाइन साइन अप (ओएसयू) कनेक्शन से कनेक्ट है.
यहां बताई गई सभी ज़रूरी शर्तें पूरी की गई हों:
- सिग्नल की क्षमता का इंडिकेटर (आरएसएसआई), आरएसएसआई के ज़रूरी थ्रेशोल्ड से ज़्यादा है. इसके अलावा, कनेक्शन पर ज़रूरत के मुताबिक ट्रैफ़िक आ रहा है. आरएसएसआई और ट्रैफ़िक थ्रेशोल्ड के बारे में जानने के लिए, स्क्रीन चालू होने पर स्कैन करना लेख पढ़ें.
- नेटवर्क की पुष्टि हो गई हो (इंटरनेट से कनेक्ट हो) या उपयोगकर्ता ने इंटरनेट ऐक्सेस के बिना इस्तेमाल करने की अनुमति दी हो.
- नेटवर्क पर डेटा के इस्तेमाल की कोई सीमा नहीं है.
अगर नेटवर्क नेटवर्क चुनने की सुविधा को स्किप करने के लिए काफ़ी अच्छा है, तो आगे कोई कार्रवाई नहीं की जाती.
अगर कनेक्ट किया गया वाई-फ़ाई नेटवर्क ठीक नहीं है या डिवाइस किसी नेटवर्क से कनेक्ट नहीं है, तो फ़्रेमवर्क नेटवर्क नॉमिनेटर को कॉल करता है. इससे, स्कैन के फ़िल्टर किए गए नतीजों के आधार पर, कनेक्ट किए जा सकने वाले वाई-फ़ाई नेटवर्क की सूची जनरेट होती है. नेटवर्क नॉमिनेटर, मौजूदा वाई-फ़ाई कॉन्फ़िगरेशन ढूंढते हैं या संभावित नेटवर्क के लिए नए कॉन्फ़िगरेशन बनाते हैं.
स्कैन के नतीजों को फ़िल्टर किया जाता है, ताकि उन बीएसएसआईडी को हटाया जा सके जिनका आरएसएसआई, एंट्री आरएसएसआई से कम है. एंट्री आरएसएसआई को
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, औरconfig_wifiFrameworkScoreEntryRssiThreshold6ghzओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. इसके अलावा, ब्लॉक किए गए BSSID को फ़िल्टर किया जाता है. बार-बार कनेक्शन फ़ेल होने, बार-बार डिसकनेक्ट होने, और एपी से मिले अनुरोधों के आधार पर, बीएसएसआईडी को ब्लॉक किया जा सकता है. एपी से यह अनुरोध किया जाता है कि वह कुछ समय के लिए, एसोसिएशन की कोशिश न करे (एमबीओ-ओसीई). बीएसएसआईडी को ब्लॉक करने के बारे में, एसएसआईडी और बीएसएसआईडी को ब्लॉक करने से जुड़े सेक्शन में बताया गया है.जब डिवाइस तेज़ी से घूम रहा होता है, तब स्कैन के नतीजों को और फ़िल्टर किया जाता है. इससे उन BSSID को हटाया जाता है जिनका आरएसएसआई तेज़ी से बदलता है. इससे पता चलता है कि वे डिवाइस के साथ नहीं घूम रहे हैं. इस ऑप्टिमाइज़ेशन को
config_wifiHighMovementNetworkSelectionOptimizationEnabled(ऑप्टिमाइज़ेशन को चालू या बंद करना) औरconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMsऔरconfig_wifiHighMovementNetworkSelectionOptimizationRssiDeltaओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. ये ओवरले, स्कैन के नतीजों में स्थिरता की ज़रूरत को कॉन्फ़िगर करते हैं. जैसे, स्कैन के नतीजों में आरएसएसआई में बदलाव (समय के हिसाब से अलग-अलग स्कैन के नतीजों में आरएसएसआई में बदलाव).
यह फ़्रेमवर्क, उम्मीदवार के स्कोरर को चलाता है, ताकि हर एसएसआईडी उम्मीदवार के लिए स्कोर जनरेट किया जा सके. एसएसआईडी के लिए चुने गए नेटवर्क में, कई बीएसएसआईडी शामिल हो सकते हैं. ये बीएसएसआईडी, नेटवर्क नॉमिनेटर जनरेट करते हैं. सबसे ज़्यादा स्कोर पाने वाला उम्मीदवार, विजेता उम्मीदवार होता है.
फ़्रेमवर्क, उपयोगकर्ता के कनेक्शन चुनने के एल्गोरिदम को लागू करता है. इससे, उपयोगकर्ता के चुने गए नेटवर्क को, कैंडिडेट स्कोरर के चुने गए नेटवर्क के बजाय नया विनिंग कैंडिडेट बनाया जा सकता है.
फ़्रेमवर्क यह तय करता है कि जीतने वाला उम्मीदवार, कनेक्ट किए गए नेटवर्क से मेल खाता है या नहीं. किसी व्यक्ति को मैच माना जाए, इसके लिए इनमें से कोई एक शर्त पूरी होनी चाहिए:
- विजेता उम्मीदवार और कनेक्ट किए गए वाई-फ़ाई नेटवर्क का BSSID एक ही है.
- अगर फ़र्मवेयर रोमिंग की सुविधा उपलब्ध है (इसमें BSSID ब्लॉकलिस्ट करने की सुविधा भी शामिल है), तो कनेक्ट किए गए नेटवर्क और सबसे अच्छा सिग्नल देने वाले नेटवर्क का SSID और सुरक्षा का टाइप एक जैसा होता है.
अगर जीतने वाला उम्मीदवार, कनेक्ट किए गए नेटवर्क से मेल खाता है, तो कोई और कार्रवाई नहीं की जाती. अगर सबसे ज़्यादा स्कोर पाने वाला उम्मीदवार, नेटवर्क से मेल नहीं खाता है, तो डिवाइस सबसे ज़्यादा स्कोर पाने वाले उम्मीदवार से कनेक्ट हो जाता है.
कनेक्ट किए गए नेटवर्क का आकलन
Android फ़्रेमवर्क या फ़र्मवेयर, कनेक्ट किए गए नेटवर्क की क्वालिटी का समय-समय पर आकलन करता है. इस सेक्शन में बताया गया है कि स्क्रीन चालू या बंद होने पर, कनेक्ट किए गए नेटवर्क का आकलन कैसे किया जाता है.
यह आकलन, नेटवर्क चुनने की सुविधा के अलावा किया जाता है. इस बारे में पिछले सेक्शन में बताया गया है.
स्क्रीन चालू
Android फ़्रेमवर्क, कनेक्ट किए गए नेटवर्क का आकलन इस तरह करता है:
वाई-फ़ाई सेवा, हर तीन सेकंड में आरएसएसआई और लिंक-लेयर के आंकड़ों को पोल करती है. इसे
config_wifiPollRssiIntervalMillisecondsओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है.अगर
config_wifiAdjustPollRssiIntervalEnabledओवरले का इस्तेमाल करके, डाइनैमिक इंटरवल अडजस्टमेंट की सुविधा चालू की जाती है, तो डिवाइस की मोबिलिटी की स्थिति और आरएसएसआई के आधार पर, पोलिंग इंटरवल डाइनैमिक तरीके से बदलता है.- जब डिवाइस एक जगह पर स्थिर होता है और आरएसएसआई -68 dBm से ज़्यादा होता है, तब पोलिंग इंटरवल को बढ़ाकर छह सेकंड कर दिया जाता है. डिवाइस के स्थिर होने की जानकारी
config_wifiPollRssiLongIntervalMillisecondsओवरले से मिलती है. वहीं, आरएसएसआई की जानकारीconfig_wifiClientRssiMonitorThresholdDbmऔरconfig_wifiClientRssiMonitorHysteresisDbओवरले से मिलती है. - जब डिवाइस एक जगह पर नहीं होता या आरएसएसआई -73 dBm से कम होता है, तब पोलिंग इंटरवल को वापस तीन सेकंड पर सेट कर दिया जाता है. यह
config_wifiPollRssiIntervalMillisecondsओवरले से कॉन्फ़िगर किया जाता है.config_wifiClientRssiMonitorThresholdDbm
- जब डिवाइस एक जगह पर स्थिर होता है और आरएसएसआई -68 dBm से ज़्यादा होता है, तब पोलिंग इंटरवल को बढ़ाकर छह सेकंड कर दिया जाता है. डिवाइस के स्थिर होने की जानकारी
वाई-फ़ाई सेवा, आरएसएसआई और लिंक-लेयर के आंकड़ों के आधार पर कनेक्टेड स्कोर का हिसाब लगाती है. इस कैलकुलेशन के लिए दो मॉडल उपलब्ध हैं. इन्हें
config_internalScorerTypeके साथ कॉन्फ़िगर किया जा सकता है:- डिफ़ॉल्ट: मशीन लर्निंग पर आधारित स्कोरर, जिसे लिंक लेयर के आंकड़ों के आधार पर ट्रेन किया गया है.
- वैकल्पिक: यह पुराना स्कोरर है. यह आरएसएसआई वैल्यू में हुए बदलावों के आधार पर आकलन करता है.
ज़रूरी नहीं: ओईएम, कनेक्ट किए गए नेटवर्क के आकलन के लॉजिक को पसंद के मुताबिक बना सकते हैं. इसके लिए, उन्हें बाहरी स्कोरर ऐप्लिकेशन लागू करना होगा. ऐसा
WifiConnectedNetworkScorerइंटरफ़ेस को लागू करके किया जाता है. साथ ही, इसेWifiManager#setWifiConnectedNetworkScorer(executor, scorer)एपीआई का इस्तेमाल करके रजिस्टर किया जाता है.रजिस्टर होने के बाद, बाहरी स्कोरर इन दोनों तरीकों से फ़्रेमवर्क के साथ इंटरैक्ट करता है:
इनपुट (फ़्रेमवर्क → स्कोरर)
फ़्रेमवर्क, स्कोरर को लाइफ़साइकल और क्वालिटी से जुड़े मुख्य इवेंट की सूचना देता है:- सेशन का लाइफ़साइकल:
onStart()औरonStop()से पता चलता है कि वाई-फ़ाई कनेक्शन कब शुरू या बंद किया गया. - वाई-फ़ाई के आंकड़े: स्कोरर को लिंक लेयर के आंकड़ों के बारे में समय-समय पर अपडेट मिलते हैं. जैसे, आरएसएसआई, लिंक की स्पीड, और पैकेट की संख्या. इसके लिए,
OnWifiUsabilityStatsListener#onWifiUsabilityStats()का इस्तेमाल किया जाता है. ये अपडेट पाने के लिए, स्कोरर कोWifiManager#addOnWifiUsabilityStatsListener()का इस्तेमाल करके लिसनर रजिस्टर करना होगा.
- सेशन का लाइफ़साइकल:
कार्रवाइयां (स्कोरर → फ़्रेमवर्क)
स्कोरर,ScoreUpdateObserverकॉलबैक ऑब्जेक्ट पर तरीकों को कॉल करके, वाई-फ़ाई सेवा को निर्देश देता है:- इस्तेमाल की जा सकने की स्थिति: कॉल करने की सुविधा
notifyStatusUpdate(sessionId, isUsable)नेटवर्क चुनने की सुविधा को कंट्रोल करने का मुख्य तरीका है.isUsable = true: नेटवर्क मान्य है. फ़्रेमवर्क, इसे सिस्टम ट्रैफ़िक के लिए डिफ़ॉल्ट नेटवर्क के तौर पर प्रमोट करता है.isUsable = false: नेटवर्क अमान्य है. फ़्रेमवर्क, इसे डिफ़ॉल्ट के तौर पर इस्तेमाल नहीं करता है. इससे मोबाइल डेटा पर फ़ॉलबैक ट्रिगर होता है.
- पहुंच की जांच: कॉल करने पर,
requestNudOperation()ट्रिगर होते हैं. इससे, आस-पास के डिवाइसों से संपर्क न हो पाने की समस्या का पता लगाने के लिए, चालू एनयूडी की जांच (उदाहरण के लिए, एआरपी या एनडी जांच) होती है. इससे यह पुष्टि की जाती है कि गेटवे से संपर्क किया जा सकता है. - BSSID ब्लॉकलिस्टिंग:
blocklistCurrentBssid()को कॉल करने से, डिवाइस को मौजूदा ऐक्सेस पॉइंट (एपी) से फिर से कनेक्ट होने से रोका जा सकता है. अगर स्कोरर को एपी से जुड़ी समस्याएं मिलती हैं, तो यह जानकारी काम की होती है.
- इस्तेमाल की जा सकने की स्थिति: कॉल करने की सुविधा
अगर किसी ओईएम ने तीसरे चरण में बताए गए तरीके से अपना स्कोरर लागू किया है, तो वाई-फ़ाई सेवा, कनेक्ट किए गए नेटवर्क के आकलन से जुड़े फ़ैसलों को ओईएम स्कोरर पर टाल देती है.
अगर ओईएम ने अपना स्कोरर लागू नहीं किया है, तो वाई-फ़ाई सेवा, दूसरे चरण में कैलकुलेट किए गए स्कोर का इस्तेमाल करती है. इससे यह तय किया जाता है कि इंटरनेट के लिए मोबाइल डेटा पर स्विच करना है या नहीं.
स्क्रीन बंद है
फ़्रेमवर्क, कनेक्ट किए गए नेटवर्क पर जांच शुरू नहीं करता. हालांकि, अगर अन्य कॉम्पोनेंट (जैसे, जगह की जानकारी देने वाली सेवाएं) स्कैन शुरू करते हैं, तो नेटवर्क चुनने की प्रोसेस अब भी हो सकती है. फ़र्मवेयर, नेटवर्क की क्वालिटी का आकलन करता है. अगर नेटवर्क की क्वालिटी खराब होती है, तो फ़र्मवेयर रोमिंग कर सकता है या (आखिरकार) नेटवर्क से डिसकनेक्ट हो सकता है और होस्ट को चालू कर सकता है.
कनेक्टिविटी स्कैन
डिवाइस की स्क्रीन चालू है, बंद है और वाई-फ़ाई से कनेक्ट है या बंद है और वाई-फ़ाई से कनेक्ट नहीं है, इसके आधार पर स्कैन अपने-आप होते हैं.
स्क्रीन चालू
स्क्रीन चालू होने पर, फ़्रेमवर्क स्कैन करने के फ़ैसलों को ज़्यादा इंटरवल पर ट्रिगर करता है. स्कैन के फ़ैसले लेने के इंटरवल, config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec, और config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec ओवरले के साथ कॉन्फ़िगर किए जाते हैं. ये पूर्णांकों के ऐरे होते हैं. डिफ़ॉल्ट रूप से, स्कैन इन इंटरवल पर होते हैं: 20, 40, 80, और 160 सेकंड. इसके बाद, स्कैन 160 सेकंड के इंटरवल पर किए जा सकते हैं. ये इन ओवरले की डिफ़ॉल्ट वैल्यू हैं.
स्क्रीन की स्थिति बदलने पर, स्कैन के लिए तय किए गए समय को रीसेट कर दिया जाता है. जैसे, स्क्रीन चालू या बंद होने पर. इसके बाद, स्कैन के लिए तय किया गया समय 20 सेकंड से शुरू होता है.
(Android 13 या इसके बाद के वर्शन वाले डिवाइसों के लिए) अगर रनटाइम के दौरान स्कैन करने के अलग-अलग इंटरवल की ज़रूरत होती है, तो ओईएम के पास विशेषाधिकार वाला ऐप्लिकेशन, WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) एपीआई को कॉल कर सकता है. इससे स्क्रीन चालू होने पर स्कैन करने का शेड्यूल डाइनैमिक तरीके से सेट किया जा सकता है.
स्कैन को पूरा करना है या छोड़ना है, यह इस बात पर निर्भर करता है कि मौजूदा नेटवर्क कनेक्शन स्कैनिंग को छोड़ने के लिए काफ़ी अच्छा है या नहीं. अगर इनमें से कोई भी शर्त पूरी होती है, तो कनेक्शन को स्कैन करने की ज़रूरत नहीं है:
- डिवाइस, ऑनलाइन साइन अप (ओएसयू) कनेक्शन से कनेक्ट है.
- कनेक्शन से काफ़ी ट्रैफ़िक आ रहा हो. ट्रैफ़िक थ्रेशोल्ड के बारे में बाद में जानें.
- आरएसआई, ज़रूरी आरएसआई थ्रेशोल्ड से ज़्यादा है (आरएसआई थ्रेशोल्ड के बारे में बाद में जानें),
और नेटवर्क को हाल ही में चुना गया है (डिफ़ॉल्ट रूप से 10 मिनट, लेकिन
config_wifiConnectedHighRssiScanMinimumWindowSizeSecओवरले का इस्तेमाल करके इसे कॉन्फ़िगर किया जा सकता है), और नेटवर्क की पुष्टि हो गई है (इंटरनेट से कनेक्ट है) या उपयोगकर्ता ने इंटरनेट ऐक्सेस के बिना इस्तेमाल करने की अनुमति दी है.
आरएसआई और ट्रैफ़िक थ्रेशोल्ड ये हैं:
- 2.4 गीगाहर्ट्ज़ बैंड के लिए, आरएसएसआई -73 dBm से ज़्यादा हो. इसे
config_wifi_framework_wifi_score_low_rssi_threshold_24GHzओवरले के साथ कॉन्फ़िगर किया गया हो या 5 गीगाहर्ट्ज़ और 6 गीगाहर्ट्ज़ बैंड के लिए, आरएसएसआई -70 dBm से ज़्यादा हो. इसेconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHzऔरconfig_wifiFrameworkScoreLowRssiThreshold6ghzओवरले के साथ कॉन्फ़िगर किया गया हो. config_wifiFrameworkMinPacketPerSecondActiveTrafficओवरले के साथ कॉन्फ़िगर किए गए, हर सेकंड (पीपीएस) में 16 से ज़्यादा पैकेट का ट्रैफ़िक (भेजा या पाया गया).
डिवाइस कनेक्ट होने और स्क्रीन चालू होने पर, कनेक्ट किया गया स्कोरर समय-समय पर वाई-फ़ाई की क्वालिटी की निगरानी करता है. इसके लिए, वह आरएसएसआई और ट्रांसफ़र किए गए पैकेट की संख्या जैसे सिग्नल देखता है. अगर वाई-फ़ाई की क्वालिटी खराब पाई जाती है (जैसा कि बाद में बताया गया है) और डिवाइस में दोहरे कॉकरेंट स्टेशन की सुविधा काम करती है, तो स्कैन शुरू हो जाता है. config_wifiLowConnectedScoreThresholdToTriggerScanForMbb ओवरले का इस्तेमाल, स्कोर थ्रेशोल्ड को कॉन्फ़िगर करने के लिए किया जा सकता है. इससे स्कैनिंग ट्रिगर होती है. config_wifiLowConnectedScoreScanPeriodSeconds ओवरले का इस्तेमाल, इन स्कैन की अवधि को कॉन्फ़िगर करने के लिए किया जा सकता है.
स्क्रीन बंद हो और वाई-फ़ाई से कनेक्ट हो
जब स्क्रीन बंद होती है और डिवाइस किसी वाई-फ़ाई नेटवर्क से कनेक्ट होता है, तो फ़र्मवेयर (वाई-फ़ाई एसओसी) रोमिंग स्कैन करता है. स्क्रीन बंद होने पर, फ़्रेमवर्क कोई स्कैन नहीं करता है.
स्क्रीन बंद हो और वाई-फ़ाई से कनेक्ट न हो (डिसकनेक्ट की स्थिति)
स्क्रीन बंद होने और वाई-फ़ाई डिसकनेक्ट होने पर, फ़र्मवेयर एसएसआईडी के लिए पीएनओ स्कैन करता है. यह फ़्रेमवर्क, फ़र्मवेयर को एसएसआईडी की सूची के साथ कॉन्फ़िगर करता है. इससे फ़र्मवेयर, स्कैन करने के लिए एसएसआईडी की सूची और स्कैन करने के लिए चैनलों की सूची का इस्तेमाल करता है. अगर कॉन्फ़िगर किया गया कोई SSID मिलता है, तो फ़र्मवेयर फ़्रेमवर्क को चालू कर देता है.
फ़्रेमवर्क, उस इंटरवल को भी कॉन्फ़िगर करता है जिस पर फ़र्मवेयर को पीएनओ स्कैन करने होते हैं. इसके लिए, डिवाइस की मोबिलिटी की स्थिति का इस्तेमाल करके, स्कैन के अलग-अलग इंटरवल चुने जाते हैं.
जब डिवाइस एक जगह पर रखा होता है, तब पहले तीन स्कैन के लिए स्कैनिंग का इंटरवल 60 सेकंड होता है. इसे config_wifiStationaryPnoScanIntervalMillis ओवरले कंट्रोल करता है. इसके बाद के स्कैन के लिए, यह इंटरवल 180 सेकंड होता है. यह ओवरले के लिए तय किए गए इंटरवल का तीन गुना होता है. तेज़ी से चलने की स्थिति में, पहले तीन स्कैन के लिए इंटरवल 20 सेकंड होता है. इसे config_wifiMovingPnoScanIntervalMillis ओवरले कंट्रोल करता है. इसके बाद के स्कैन के लिए इंटरवल 60 सेकंड होता है. यह ओवरले के लिए तय किए गए मल्टीप्लायर का तीन गुना होता है.
नेटवर्क नॉमिनेटर
नेटवर्क नॉमिनेटर, उन नेटवर्क के लिए कॉन्फ़िगरेशन (WifiConfiguration) ढूंढते या बनाते हैं जो:
- स्कैन के नतीजों के आधार पर उपलब्ध है या कनेक्ट किया गया नेटवर्क (जो कभी-कभी स्कैन के खराब नतीजों में मौजूद नहीं होता).
- आरएसआईआई कम से कम हो. 2.4 गीगाहर्ट्ज़ बैंड के लिए, कम से कम आरएसएसआई -80 dBm है. वहीं, 5 गीगाहर्ट्ज़ और 6 गीगाहर्ट्ज़ बैंड के लिए, यह -77 dBm है. इसे
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, औरconfig_wifiFrameworkScoreEntryRssiThreshold6ghzओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. - ब्लॉक नहीं किया गया हो. उदाहरण के लिए, पिछली बार कनेक्शन नहीं बन पाने की वजह से ब्लॉक न किया गया हो.
- नेटवर्क यह नहीं बताता कि इसका इस्तेमाल नहीं किया जा सकता. उदाहरण के लिए, MBO/OCE का इस्तेमाल करना.
- इसे डिवाइस पर उपलब्ध क्रेडेंशियल का इस्तेमाल करने से जोड़ा जा सकता है.
इन नेटवर्क नॉमिनेटर का इस्तेमाल किया जाता है:
- सेव किए गए नेटवर्क का सुझाव देने वाला: यह सेव किए गए सभी नेटवर्क का आकलन करता है. इनमें सेव की गई Passpoint सदस्यताएं भी शामिल हैं.
- सुझाए गए नेटवर्क का नॉमिनेटर: यह Suggestion API का इस्तेमाल करने वाले ऐप्लिकेशन के ज़रिए उपलब्ध कराए गए सभी नेटवर्क का आकलन करता है. इसमें सुझाए गए Passpoint सदस्यताएं भी शामिल हैं.
उम्मीदवारों को स्कोर देने वाले लोग
उम्मीदवारों को स्कोर देने वाले लोग, हर उम्मीदवार का आकलन करते हैं और उन्हें स्कोर देते हैं. ThroughputScorer (डिफ़ॉल्ट स्कोरर) के लिए स्कोर, इन बातों के आधार पर तय किया जाता है:
- बेस स्कोर की गिनती आरएसएसआई के आधार पर की जाती है. आरएसएसआई को 2.4 गीगाहर्ट्ज़ बैंड के लिए -73 dBm या 5 गीगाहर्ट्ज़ और 6 गीगाहर्ट्ज़ बैंड के लिए -70 dBm पर कैप किया जाता है. ये बैंड
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz, औरconfig_wifiFrameworkScoreLowRssiThreshold6ghzओवरले के साथ कॉन्फ़िगर किए जाते हैं. - स्कोर में बढ़ोतरी का हिसाब, थ्रूपुट के अनुमान के आधार पर लगाया जाता है. यह अनुमान, टेक्नोलॉजी, चैनल की फ़्रीक्वेंसी, बैंडविड्थ, आरएसएसआई, चैनल की स्थितियों, ज़्यादा से ज़्यादा स्पेसियल स्ट्रीम की संख्या, और अन्य पैरामीटर से मिलता है. स्कोर बूस्ट को
config_wifiFrameworkThroughputBonusNumeratorऔरconfig_wifiFrameworkThroughputBonusDenominatorओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. साथ ही, इसेconfig_wifiFrameworkThroughputBonusLimitओवरले का इस्तेमाल करके तय की गई ज़्यादा से ज़्यादा वैल्यू तक सीमित किया जा सकता है. - अगर किसी नेटवर्क को उपयोगकर्ता या ऐप्लिकेशन ने हाल ही में चुना है, तो उसे कुछ समय के लिए ज़्यादा स्कोर मिलता है. इस अवधि को
config_wifiFrameworkLastSelectionMinutesओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. इस अवधि के दौरान, यह पुष्टि की जाती है कि नेटवर्क को उपयोगकर्ता की ओर से चुने गए नेटवर्क के तौर पर चुना गया है. - मौजूदा नेटवर्क से मेल खाने वाले उम्मीदवार को
config_wifiFrameworkCurrentNetworkBonusMinऔरconfig_wifiFrameworkCurrentNetworkBonusPercentओवरले से कॉन्फ़िगर किया गया स्कोर बूस्ट मिलता है. इसे आरएसएसआई और थ्रूपुट-आधारित स्कोर के प्रतिशत के आधार पर अतिरिक्त बोनस मिलता है. यह कॉन्फ़िगर किए जा सकने वाले सबसे कम स्कोर तक होता है. - सुरक्षित नेटवर्क को ओपन नेटवर्क की तुलना में ज़्यादा स्कोर मिलता है. बोनस को
config_wifiFrameworkSecureNetworkBonusओवरले का इस्तेमाल करके कॉन्फ़िगर किया जाता है. - बिना शुल्क वाले नेटवर्क को, शुल्क वाले नेटवर्क की तुलना में ज़्यादा स्कोर मिलता है.
बोनस को
config_wifiFrameworkUnmeteredNetworkBonusओवरले का इस्तेमाल करके कॉन्फ़िगर किया जाता है. - सेव किए गए नेटवर्क को, Suggestion API का इस्तेमाल करके सुझाए गए नेटवर्क से ज़्यादा स्कोर मिलता है. बोनस को
config_wifiFrameworkSavedNetworkBonusओवरले का इस्तेमाल करके कॉन्फ़िगर किया जाता है. - भरोसेमंद न होने वाले नेटवर्क (जिनके लिए Suggestion API के तहत अनुरोध किया जा सकता है) को किसी भी अन्य नेटवर्क की तुलना में कम स्कोर मिलता है.
- अगर डिवाइस किसी ऐसे नेटवर्क से कनेक्ट है जिसमें इंटरनेट ऐक्सेस है, तो जिस नेटवर्क में पहले इंटरनेट ऐक्सेस नहीं था उसे 0 का स्कोर मिलता है.
सेव किए गए वर्सेस सुझाव और बिना मीटर वाले वर्सेस मीटर वाले (यानी, डिफ़ॉल्ट ओवरले वैल्यू) के लिए डिफ़ॉल्ट बोनस, सेव किए गए, सुझाए गए, मीटर वाले, और बिना मीटर वाले के लिए प्राथमिकता का क्रम तय करता है:
- ऐसे नेटवर्क सेव किए गए हैं जिनमें डेटा इस्तेमाल की कोई सीमा नहीं है
- डेटा इस्तेमाल की कोई सीमा न होने वाले सुझाए गए नेटवर्क
- सेव किए गए सीमित डेटा वाले नेटवर्क
- सुझाए गए सीमित डेटा वाले नेटवर्क
इसका मतलब है कि सेव किए गए अनलिमिटेड (मुफ़्त) नेटवर्क को हमेशा सेव किए गए लिमिटेड (पैसे चुकाकर इस्तेमाल किया जाने वाला) नेटवर्क से पहले चुना जाता है. हाल ही में उपयोगकर्ता या ऐप्लिकेशन की ओर से चुने गए स्कोर बोनस से, इस प्राथमिकता को बदला जा सकता है.
फ़्रेमवर्क में कई कैंडिडेट स्कोरर इंस्टॉल किए जा सकते हैं. हालांकि, एक समय में सिर्फ़ एक स्कोरर चालू किया जा सकता है. अन्य स्कोरर का इस्तेमाल मेट्रिक के लिए किया जा सकता है, ताकि वैकल्पिक एल्गोरिदम की जांच की जा सके. Android 11 में, डिफ़ॉल्ट स्कोरर ThroughputScorer होता है.
SSID और BSSID को ब्लॉक करना
फ़्रेमवर्क, एसएसआईडी या बीएसएसआईडी को ब्लॉक कर सकता है. इसका मतलब है कि वह उन्हें कुछ समय के लिए या हमेशा के लिए कनेक्शन के लिए नहीं चुनेगा.
BSSID ब्लॉक करना
बीएसएसआईडी ब्लॉकिंग की सुविधा, गड़बड़ी के दो काउंटर की मदद से काम करती है. इनमें से एक काउंटर, लगातार होने वाली गड़बड़ियों को ट्रैक करता है. वहीं, दूसरा काउंटर, गड़बड़ियों की संख्या को ट्रैक करता है. ये दोनों काउंटर, गड़बड़ी के हर टाइप के लिए अलग-अलग होते हैं. गड़बड़ी के टाइप की सूची देखने के लिए, बाद में देखें. गड़बड़ी होने पर:
- इसके बाद, फ़ेल होने की वजह के हिसाब से काउंटर बढ़ जाता है.
- अगर गड़बड़ी की उस टाइप के लिए तय की गई सीमा पूरी हो जाती है, तो:
- BSSID को ब्लॉक किया गया है.
- गड़बड़ी के लिए, स्ट्रीक काउंटर बढ़ जाता है.
किसी BSSID को ब्लॉक करने की अवधि, कॉन्फ़िगर की जा सकने वाली बेस वैल्यू से शुरू होती है. इस आधारभूत वैल्यू को config_wifiBssidBlocklistMonitorBaseBlockDurationMs या config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs ओवरले से तय किया जाता है. यह आरएसएसआई पर निर्भर करता है. इसके बाद, यह अवधि तेज़ी से बढ़ती है और config_wifiBssidBlocklistMonitorFailureStreakCap
ओवरले में बताई गई कॉन्फ़िगर की जा सकने वाली ऊपरी सीमा तक पहुंच जाती है. अगर एक ही बीएसएसआईडी पर लगातार कनेक्शन नहीं बन पाता है, तो यह अवधि बढ़ जाती है. अवधि, फ़ेल होने की संख्या के हिसाब से बढ़ती है. उदाहरण के लिए, अगर कोई अनुरोध दो बार फ़ेल होता है, तो ब्लॉक की अवधि चार गुना बढ़ जाएगी.
बीएसएसआईडी को ब्लॉक करने के थ्रेशोल्ड, कनेक्शन में आने वाली समस्या की वजह पर निर्भर करते हैं. साथ ही, ओवरले का इस्तेमाल करके इन्हें अपनी ज़रूरत के मुताबिक बनाया जा सकता है:
- एपी, एमबीओ/ओसीई का इस्तेमाल करके असोसिएशन को अस्वीकार करता है नया एसटीए कोड हैंडल नहीं किया जा सकता:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold. - इस नेटवर्क से इंटरनेट की पुष्टि नहीं हो सकी:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold. - गलत पासवर्ड डालने पर पुष्टि नहीं हो सकी. गड़बड़ी का कोड:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold. - ईएपी नेटवर्क के लिए, ईएपी की पुष्टि करने में हुई गड़बड़ी का कोड:
config_wifiBssidBlocklistMonitorEapFailureThreshold. - खाते को जोड़ने का अनुरोध अस्वीकार कर दिया गया है. इसके अलावा, खाते को जोड़ने के अनुरोध के अस्वीकार होने की अन्य वजहें:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold. - खाता लिंक करने की समयसीमा खत्म:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold. - पुष्टि नहीं की जा सकी, पुष्टि करने से जुड़ी अन्य सामान्य गड़बड़ियां:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold. - डीएचसीपी फ़ेल हो गया, डीएचसीपी उपलब्ध कराने में समस्या:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold. - कनेक्ट होने के कुछ ही समय बाद, डिवाइस के नेटवर्क से डिसकनेक्ट होने की वजह से, कनेक्शन में समस्या आई है:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold.config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMsकी मदद से, समय की अवधि को कॉन्फ़िगर किया जा सकता है.
BSSID की ब्लॉकलिस्ट हटाने की शर्तें
किसी BSSID को ब्लॉक की गई सूची से तब हटाया जाता है, जब:
- वाई-फ़ाई को टॉगल करने पर, सभी BSSID को ब्लॉक की गई सूची से हटा दिया जाता है.
- जब कोई उपयोगकर्ता वाई-फ़ाई पिकर में किसी नेटवर्क पर टैप करता है, तो उपयोगकर्ता के चुने गए नेटवर्क के सभी बीएसएसआईडी, ब्लॉक की गई सूची से हटा दिए जाते हैं.
- ब्लॉक करने की अवधि खत्म होने (टाइम आउट) पर, BSSID को ब्लॉक की गई सूची से हटा दिया जाता है.
- सिस्टम रीबूट होने पर, सभी ब्लॉक की गई सूचियां मिट जाती हैं.
- किसी नेटवर्क को हटाने पर, उससे जुड़े सभी BSSID को ब्लॉक की गई सूची से हटा दिया जाता है.
फ़ेलियर और स्ट्रीक काउंटर रीसेट करने की शर्तें:
- सिस्टम के रीबूट होने पर, सभी BSSID के लिए काउंटर रीसेट हो जाते हैं.
- किसी नेटवर्क को हटाने पर, उससे जुड़े BSSID के काउंटर रीसेट हो जाते हैं.
L2 कनेक्शन चालू होने पर, इन गड़बड़ी कोड के लिए काउंटर रीसेट हो जाते हैं:
REASON_AP_UNABLE_TO_HANDLE_NEW_STAREASON_WRONG_PASSWORDREASON_EAP_FAILUREREASON_ASSOCIATION_REJECTIONREASON_ASSOCIATION_TIMEOUTREASON_AUTHENTICATION_FAILUREREASON_ABNORMAL_DISCONNECT(यह कुकी सिर्फ़ तब मिटाई जाती है, जब डिवाइस को इस BSSID से कनेक्ट किए हुए तीन घंटे से ज़्यादा हो गए हों)REASON_NONLOCAL_DISCONNECT_CONNECTING
नेटवर्क की पुष्टि हो जाने पर, इस गड़बड़ी कोड के लिए काउंटर रीसेट हो जाते हैं:
REASON_NETWORK_VALIDATION_FAILURE
डीएचसीपी प्रोविज़निंग के पूरा होने पर, नीचे दिए गए गड़बड़ी कोड के लिए काउंटर रीसेट हो जाते हैं:
REASON_DHCP_FAILURE
SSID ब्लॉक करना
एसएसआईडी को ब्लॉक करने की सुविधा, बीएसएसआईडी को ब्लॉक करने की सुविधा की तरह ही काम करती है. हर नेटवर्क के लिए, गड़बड़ी के हर टाइप के हिसाब से गड़बड़ी का काउंटर बढ़ता है. ऐसा तब होता है, जब उस टाइप के कनेक्शन में गड़बड़ियां होती हैं.
जब किसी खास तरह के कनेक्शन के लिए तय की गई सीमा से ज़्यादा बार कनेक्शन नहीं बन पाता है, तो कॉन्फ़िगरेशन के आधार पर SSID को हमेशा के लिए या कुछ समय के लिए ब्लॉक कर दिया जाता है. हर तरह की गड़बड़ी के लिए कॉन्फ़िगरेशन, WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS में कोड किया जाता है. इसकी खास जानकारी यहां दी गई टेबल में दी गई है.
|
* कुछ समय के लिए बंद किए गए नेटवर्क के लिए, बंद रहने की अवधि डाइनैमिक तरीके से बदलती है. यह इस बात पर निर्भर करती है कि नेटवर्क पर कनेक्ट करने की कोशिश कितनी बार असफल हुई है. अगर कोई नेटवर्क लगातार पांच बार कनेक्ट नहीं हो पाता है, तो इसके बाद हर बार कनेक्ट न होने पर, नेटवर्क को बंद करने की अवधि पिछली अवधि से दोगुनी हो जाती है. उदाहरण के लिए, लगातार पांच बार गड़बड़ी होने पर, नेटवर्क को पांच मिनट के लिए बंद कर दिया जाता है, इसके बाद, छठी बार गड़बड़ी होने पर 10 मिनट के लिए, सातवीं बार गड़बड़ी होने पर 20 मिनट के लिए, और इसी तरह, ज़्यादा से ज़्यादा 18 घंटे तक नेटवर्क को बंद कर दिया जाता है. |
||||
| गड़बड़ी का कोड | ब्यौरा | थ्रेशोल्ड | विज्ञापन बंद करने की बुनियादी अवधि* | टाइप बंद करें |
|---|---|---|---|---|
DISABLED_DHCP_FAILURE |
डीएचसीपी की सुविधा चालू नहीं की जा सकी | 5 | 5 मिनट तक | अस्थायी |
DISABLED_NO_INTERNET_TEMPORARY |
नेटवर्क की पुष्टि नहीं हो सकी, लेकिन उपयोगकर्ता ने कहा है कि वह आने वाले समय में इस नेटवर्क से कनेक्ट करना चाहता है | 1 | 10 मिनट | अस्थायी |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
सप्लीकेंट के पास नेटवर्क से कनेक्ट करने के क्रेडेंशियल नहीं हैं | 1 | लागू नहीं | स्थायी |
DISABLED_NO_INTERNET_PERMANENT |
नेटवर्क की पुष्टि न होने पर डिफ़ॉल्ट रूप से दिखने वाला मैसेज | 1 | लागू नहीं | स्थायी |
DISABLED_BY_WIFI_MANAGER |
यह सुविधा अब काम नहीं करती और इसका इस्तेमाल नहीं किया जाता | 1 | लागू नहीं | स्थायी |
DISABLED_BY_WRONG_PASSWORD |
पासवर्ड गलत है और यह नेटवर्क कभी कनेक्ट नहीं हुआ है | 1 | लागू नहीं | स्थायी |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
EAP की सुविधा काम नहीं कर रही है, क्योंकि सिम कार्ड से इस सुविधा की सदस्यता नहीं ली गई है | 1 | लागू नहीं | स्थायी |
DISABLED_ASSOCIATION_REJECTION |
असोसिएशन अस्वीकार करने से जुड़ी गड़बड़ियां | 5 | 5 मिनट तक | अस्थायी |
DISABLED_AUTHENTICATION_FAILURE |
पुष्टि करने से जुड़ी अन्य समस्याएं (जैसे, गलत पासवर्ड या EAP से जुड़ी समस्या नहीं है) | 5 | 5 मिनट तक | अस्थायी |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
Provider-specific (private) EAP फ़ेल हो गया. | 1 | लागू नहीं | स्थायी |
DISABLED_NETWORK_NOT_FOUND |
अनुरोध करने वाला व्यक्ति, स्कैन के नतीजों में ऐसा नेटवर्क नहीं ढूंढ सका जो कनेक्शन के लिए फ़्रेमवर्क के अनुरोध किए गए नेटवर्क से मेल खाता हो. इसमें नेटवर्क की क्षमताएं भी शामिल हैं. | 2 | 5 मिनट तक | अस्थायी |
DISABLED_CONSECUTIVE_FAILURES |
नेटवर्क से लगातार पांच या उससे ज़्यादा बार कनेक्ट नहीं किया जा सका. इन गड़बड़ियों के लिए, गड़बड़ी के टाइप में इस टेबल में दिए गए गड़बड़ी के टाइप शामिल हैं. हालांकि, इसमें और भी गड़बड़ी के टाइप शामिल हो सकते हैं. |
5 | 5 मिनट तक | अस्थायी |
नेटवर्क को कुछ समय के लिए बंद किया जाता है. इसे फिर से तब चालू किया जाता है, जब:
- खाता बंद करने की अवधि खत्म हो गई है.
- उपयोगकर्ता, कनेक्ट करने के लिए नेटवर्क को मैन्युअल तरीके से चुनता है.
- उपयोगकर्ता ने वाई-फ़ाई को टॉगल किया हो.
- सिस्टम को रीबूट किया गया है.
- बहुत कम आरएसएसआई पर नेटवर्क बंद कर दिया गया था. हालांकि, बाद में सामान्य या ज़्यादा आरएसएसआई पर नेटवर्क का फिर से पता चला.
हमेशा के लिए बंद किए गए नेटवर्क को तब फिर से चालू किया जाता है, जब:
- उपयोगकर्ता, कनेक्ट करने के लिए नेटवर्क को मैन्युअल तरीके से चुनता है.
किसी नेटवर्क के लिए, कनेक्शन बनाने में हुई गड़बड़ियों की संख्या तब रीसेट हो जाती है, जब:
- नेटवर्क हटा दिया गया है.
- डिवाइस, नेटवर्क से कनेक्ट हो गया है.
- नेटवर्क को बंद करने की अवधि खत्म होने के बाद, उसे फिर से चालू कर दिया गया है.
- उपयोगकर्ता, कनेक्ट करने के लिए नेटवर्क को मैन्युअल तरीके से चुनता है.
- सिस्टम को रीबूट किया गया है.
स्कोर कार्ड
Android 10 में स्कोर कार्ड की सुविधा शुरू की गई थी. यह डिवाइस पर मौजूद BSSID के बारे में आंकड़े रिकॉर्ड करती है. स्कोर कार्ड को सेव करने के लिए, IpMemoryStore सेवा का इस्तेमाल किया जाता है.
Android 11 में नेटवर्क चुनने के लिए, स्कोर कार्ड का इस्तेमाल नहीं किया जाता.
उपयोगकर्ता के लिए कनेक्ट करने का विकल्प
Android में, उपयोगकर्ता के कनेक्शन के लिए एक एल्गोरिदम होता है. इससे, कनेक्शन चुनने की प्रोसेस में उन वाई-फ़ाई नेटवर्क को प्राथमिकता दी जाती है जिनसे उपयोगकर्ता ने पहले कनेक्ट किया है. उदाहरण के लिए, घर का नेटवर्क. उपयोगकर्ता, सार्वजनिक नेटवर्क की तुलना में ऐसे नेटवर्क को प्राथमिकता दे सकते हैं. भले ही, इनकी परफ़ॉर्मेंस सार्वजनिक नेटवर्क से कम हो. ऐसा इसलिए, क्योंकि ये नेटवर्क अतिरिक्त सेवाएं देते हैं. जैसे, होम डिवाइसों को कंट्रोल करने की सुविधा.
उपयोगकर्ता की पसंद के नेटवर्क की जानकारी तब सेव की जाती है, जब वह कोई नेटवर्क चुनता है. इस दौरान, दिखने वाले सभी वाई-फ़ाई कॉन्फ़िगरेशन और उनके सिग्नल की ताकत को मार्क किया जाता है. अगर अपने-आप नेटवर्क चुनने की प्रोसेस के दौरान, मार्क किए गए वाई-फ़ाई कॉन्फ़िगरेशन में से किसी एक को चुना जाता है और उपयोगकर्ता के चुने गए नेटवर्क का विकल्प उपलब्ध होता है, तो उपयोगकर्ता के चुने गए नेटवर्क से कनेक्ट करने का एल्गोरिदम, उपयोगकर्ता के चुने गए नेटवर्क को प्राथमिकता देता है. ऐसा तब होता है, जब ये शर्तें पूरी होती हैं:
- उपयोगकर्ता के चुने गए नेटवर्क के पास, पिछली बार इस्तेमाल किए जाने के दौरान इंटरनेट का ऐक्सेस था.
- उपयोगकर्ता के कनेक्ट करने के विकल्प का सिग्नल, उस समय के सिग्नल से बेहतर है जब इसे मार्जिन ऑफ़ एरर के साथ चुना गया था. इस गड़बड़ी के मार्जिन को
config_wifiEstimateRssiErrorMarginDbओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है.
रीबूट करने के बाद भी, उपयोगकर्ता के चुने गए नेटवर्क से कनेक्ट रहने का विकल्प बना रहता है. उपयोगकर्ता के पास कनेक्ट करने का विकल्प होता है. यह विकल्प, सेव किए गए नेटवर्क, पासपॉइंट नेटवर्क, और सुझाए गए नेटवर्क के लिए काम करता है.
एक साथ दो स्टेशन
इस सेक्शन में, वाई-फ़ाई नेटवर्क चुनने के बारे में बताया गया है. यह तब होता है, जब कोई डिवाइस एक साथ दो वाई-फ़ाई नेटवर्क से कनेक्ट हो सकता है.
मेक-बिफ़ोर-ब्रेक
अगर मेक-बिफ़ोर-ब्रेक फ़ंक्शन चालू है, तो डिवाइस पुराने नेटवर्क से डिसकनेक्ट होने से पहले, नए नेटवर्क से कनेक्ट होने की कोशिश करता है. मेक-बिफ़ोर-ब्रेक फ़्लो में, नेटवर्क चुनने के लिए उसी एल्गोरिदम का इस्तेमाल किया जाता है जिसका इस्तेमाल ब्रेक-बिफ़ोर-मेक नेटवर्क स्विचिंग के लिए किया जाता है. ब्रेक-बिफ़ोर-मेक नेटवर्क स्विचिंग का मतलब है कि डिवाइस, नए नेटवर्क से कनेक्ट होने से पहले पुराने नेटवर्क से डिसकनेक्ट हो जाता है. अगर नेटवर्क चुनने वाला एल्गोरिदम, ऐसा नेटवर्क चुनता है जिसे मेक-बिफ़ोर-ब्रेक का इस्तेमाल करके स्विच नहीं किया जा सकता, तो डिवाइस अपने-आप ब्रेक-बिफ़ोर-मेक पर वापस आ जाता है.
एक साथ प्रतिबंधित और इंटरनेट कनेक्शन
अगर एक साथ पाबंदी वाले और इंटरनेट कनेक्शन फ़ंक्शन चालू है, तो डिवाइस पाबंदी वाले किसी ऐसे सेकंडरी वाई-फ़ाई नेटवर्क से कनेक्ट हो सकता है जो सिर्फ़ उन ऐप्लिकेशन के लिए उपलब्ध है जिन्हें डिवाइस बनाने वाली कंपनी ने कॉन्फ़िगर किया है. डिवाइस बनाने वाली कंपनियों के लिए, इसे कॉन्फ़िगर करने के निर्देश एक साथ इस्तेमाल करने पर पाबंदी और इंटरनेट कनेक्शन में दिए गए हैं.
नेटवर्क चुनने का एल्गोरिदम, जब स्कैन के ऐसे नतीजे ढूंढता है जो ओईएम के पेड या निजी सुझाव से मेल खाते हैं, तो वह दूसरे नेटवर्क के तौर पर उससे अपने-आप कनेक्ट हो जाता है. मुख्य वाई-फ़ाई नेटवर्क (जो सामान्य ऐप्लिकेशन को इंटरनेट कनेक्शन देता है) के लिए नेटवर्क चुनने की प्रोसेस, सामान्य तौर पर साथ-साथ चलती है.
अक्सर पूछे जाने वाले सवाल (एफ़एक्यू)
क्या सुरक्षित नेटवर्क को हमेशा ओपन नेटवर्क से ज़्यादा प्राथमिकता मिलती है?
नहीं. सेव किए गए नेटवर्क बनाम सुझाए गए नेटवर्क और सीमित डेटा वाले नेटवर्क बनाम बिना सीमा वाले नेटवर्क, मुख्य कैटगरी हैं. इनके आधार पर नेटवर्क का आकलन किया जाता है. हर कैटगरी में, सुरक्षित नेटवर्क को सबके लिए उपलब्ध नेटवर्क की तुलना में कुछ प्राथमिकता दी जाती है. हालांकि, कनेक्शन की क्वालिटी को ज़्यादा महत्व दिया जाता है.
ऐसा इसलिए है, क्योंकि उपयोगकर्ता के डेटा को असल में एंड-टू-एंड एन्क्रिप्शन (उदाहरण के लिए, टीएलएस) से सुरक्षित किया जाता है. सुरक्षित नेटवर्क, बातचीत के सिर्फ़ पहले चरण को एन्क्रिप्ट (सुरक्षित) करते हैं. साथ ही, पहले से शेयर की गई कुंजियों वाले नेटवर्क के लिए, वे ज़्यादा निजता नहीं देते.
सुझाए गए नेटवर्क के मुकाबले, सेव किए गए नेटवर्क को प्राथमिकता क्यों दी जाती है?
सेव किए गए मुफ़्त (अनलिमिटेड डेटा वाले) नेटवर्क को, सुझाए गए मुफ़्त नेटवर्क से ज़्यादा प्राथमिकता दी जाती है. साथ ही, सेव किए गए सीमित डेटा वाले नेटवर्क को, सुझाए गए सीमित डेटा वाले नेटवर्क से ज़्यादा प्राथमिकता दी जाती है.
सुझाए गए नेटवर्क के मुकाबले, सेव किए गए नेटवर्क को प्राथमिकता दी जाती है. ऐसा इसलिए, क्योंकि ये ऐसे नेटवर्क होते हैं जिन्हें उपयोगकर्ता ने डिवाइस में खुद जोड़ा होता है. इसका मतलब है कि जब भी हो सके, इन नेटवर्क से कनेक्ट करने की प्राथमिकता दी जाती है.
ध्यान दें कि उपयोगकर्ता, सेव किए गए हर नेटवर्क के लिए, अपने-आप कनेक्ट होने की सुविधा बंद कर सकते हैं. इसका मतलब है कि वे यह तय कर सकते हैं कि इन नेटवर्क का इस्तेमाल सिर्फ़ मैन्युअल तरीके से किया जाना है और डिवाइस को इन्हें अपने-आप कनेक्ट करने के लिए नहीं मानना है.
क्या मेरे पास, सख्त प्राथमिकता के क्रम को बदलने या उसे पूरी तरह से हटाने का विकल्प है?
पिछले सेक्शन में दी गई बोनस ओवरले में बदलाव करके, नेटवर्क चुनने से जुड़े फ़ैसलों में बदलाव किया जा सकता है. हालांकि, डिफ़ॉल्ट वैल्यू बदलने का सुझाव नहीं दिया जाता, क्योंकि इन्हें कई इस्तेमाल के उदाहरणों पर ध्यान से विचार करने के बाद चुना गया है.