वाई-फ़ाई नेटवर्क चुनना

इस पेज पर, Android 12 में इस्तेमाल किए गए उन एल्गोरिदम और तरीकों के बारे में बताया गया है जिनकी मदद से, वाई-फ़ाई नेटवर्क चुने जाते हैं और उनके बीच स्विच किया जाता है. Android, कनेक्ट किए गए नेटवर्क की क्वालिटी का लगातार आकलन करता है. साथ ही, उपलब्ध नेटवर्क की क्वालिटी का भी आकलन करता है.

अपने-आप कनेक्ट होने की सुविधा की अवधि

इस सेक्शन में बताया गया है कि Android डिवाइस, आस-पास मौजूद वाई-फ़ाई नेटवर्क का आकलन कैसे करता है और उनसे कैसे कनेक्ट होता है.

  1. डिवाइस, उपलब्ध नेटवर्क को इनमें से किसी एक तरीके से स्कैन करता है. यह इस बात पर निर्भर करता है कि स्क्रीन चालू है या बंद.

    • स्क्रीन चालू (कनेक्ट किया गया): Android कनेक्टिविटी सबसिस्टम, समय-समय पर यह आकलन करता है कि मौजूदा कनेक्शन, स्कैनिंग को स्किप करने के लिए काफ़ी अच्छा है या नहीं. यह आकलन, स्क्रीन चालू होने पर स्कैन करने की सुविधा में तय किए गए तरीके के मुताबिक किया जाता है. अगर कनेक्शन इतना अच्छा नहीं है कि स्कैनिंग को स्किप किया जा सके, तो कनेक्टिविटी सबसिस्टम, उपलब्ध नेटवर्क का पता लगाने के लिए स्कैन को ट्रिगर करता है. इन स्कैन को सिस्टम के अन्य कॉम्पोनेंट भी ट्रिगर कर सकते हैं. जैसे, जगह की जानकारी देने वाला सिस्टम या कोई ऐप्लिकेशन (इसमें Settings ऐप्लिकेशन भी शामिल है).
    • स्क्रीन चालू होने पर (डिस्कनेक्ट किया गया): Android कनेक्टिविटी सबसिस्टम, एक्सपोनेंशियल बैकऑफ़ शेड्यूल के हिसाब से समय-समय पर स्कैन करता है. यह मॉड्यूल, स्कैन किए गए सभी नतीजों का आकलन करता है. साथ ही, कनेक्ट करने के लिए सबसे अच्छे नेटवर्क को चुनने की कोशिश करता है.
    • स्क्रीन बंद होने पर (डिसकनेक्ट होने पर): स्क्रीन बंद होते ही, होस्ट सीपीयू फ़र्मवेयर को पसंदीदा नेटवर्क की सूची के साथ प्रोग्राम करता है. इसके लिए, पसंदीदा नेटवर्क ऑफलोड (पीएनओ) स्कैन का इस्तेमाल किया जाता है. अगर फ़र्मवेयर को कोई पसंदीदा नेटवर्क मिलता है, तो वह होस्ट को चालू कर देता है. AOSP यह मानता है कि डिवाइस पर PNO की सुविधा काम करती है.

    WifiManager#allowAutojoinGlobal(boolean) तरीके का इस्तेमाल करके, अपने-आप कनेक्ट होने की सुविधा बंद की जा सकती है. यह एक खास एपीआई है. डिवाइस बनाने वाली कंपनियां, इसका इस्तेमाल कुछ ही मामलों में कर सकती हैं. उदाहरण के लिए, मोबाइल के अलावा किसी अन्य डिवाइस पर, पहले से कॉन्फ़िगर किया गया डिवाइस.

    अगर डिवाइस कनेक्ट है और config_wifi_framework_enable_associated_network_selection ओवरले को false पर सेट किया गया है, तो कनेक्टिविटी स्कैन नहीं किए जाते हैं. साथ ही, स्कैन के नतीजों से नेटवर्क नहीं चुना जाता है. जब डिवाइस डिसकनेक्ट हो जाता है, तब इस सेटिंग का कोई असर नहीं पड़ता. इसका मतलब है कि कनेक्टिविटी स्कैन और नेटवर्क चुनने की प्रोसेस अब भी जारी रहती है.

  2. स्कैन के नतीजों का आकलन किया जाता है.

    • अगर डिवाइस किसी वाई-फ़ाई नेटवर्क से कनेक्ट है, तो फ़्रेमवर्क यह आकलन करता है कि नेटवर्क चुनने की प्रोसेस को स्किप करने के लिए, मौजूदा नेटवर्क सही है या नहीं.

      किसी नेटवर्क को नेटवर्क चुनने की सुविधा को स्किप करने के लिए काफ़ी अच्छा तब माना जाता है, जब इनमें से कोई भी शर्त पूरी होती हो:

      • पिछली बार नेटवर्क चुनने के बाद, 10 सेकंड से कम समय बीता हो.
      • उपयोगकर्ता ने हाल ही में नेटवर्क से मैन्युअल तरीके से कनेक्ट किया है. config_wifiSufficientDurationAfterUserSelectionMilliseconds ओवरले का इस्तेमाल करके, हाल ही में कनेक्ट करने की अवधि को कॉन्फ़िगर किया जा सकता है.
      • डिवाइस, ऑनलाइन साइन अप (ओएसयू) कनेक्शन से कनेक्ट है.
      • यहां बताई गई सभी ज़रूरी शर्तें पूरी की गई हों:

        • सिग्नल की क्षमता का इंडिकेटर (आरएसएसआई), आरएसएसआई के ज़रूरी थ्रेशोल्ड से ज़्यादा है या कनेक्शन पर काफ़ी ट्रैफ़िक आ रहा है. आरएसएसआई और ट्रैफ़िक थ्रेशोल्ड के लिए, स्क्रीन चालू होने पर स्कैन करना देखें.
        • नेटवर्क की पुष्टि हो गई है (इंटरनेट से कनेक्ट है) या उपयोगकर्ता ने इंटरनेट ऐक्सेस के बिना इसका इस्तेमाल करने की अनुमति दी है.
        • नेटवर्क पर डेटा के इस्तेमाल की कोई सीमा नहीं है.
    • अगर नेटवर्क नेटवर्क चुनने की सुविधा को स्किप करने के लिए काफ़ी अच्छा है, तो आगे कोई कार्रवाई नहीं की जाती.

    • अगर कनेक्ट किया गया वाई-फ़ाई नेटवर्क ठीक नहीं है या डिवाइस किसी नेटवर्क से कनेक्ट नहीं है, तो फ़्रेमवर्क नेटवर्क नॉमिनेटर को कॉल करता है. इससे, स्कैन के फ़िल्टर किए गए नतीजों के आधार पर, कनेक्ट किए जा सकने वाले वाई-फ़ाई नेटवर्क की सूची जनरेट होती है. नेटवर्क नॉमिनेटर, मौजूदा वाई-फ़ाई कॉन्फ़िगरेशन ढूंढते हैं या संभावित नेटवर्क के लिए नए कॉन्फ़िगरेशन बनाते हैं.

    • स्कैन के नतीजों को फ़िल्टर किया जाता है, ताकि उन बीएसएसआईडी को हटाया जा सके जिनका आरएसएसआई, एंट्री आरएसएसआई से कम है. एंट्री आरएसएसआई को config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, और config_wifiFrameworkScoreEntryRssiThreshold6ghz ओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. इसके अलावा, ब्लॉक किए गए BSSID को फ़िल्टर किया जाता है. बार-बार कनेक्शन में रुकावट आने, बार-बार डिसकनेक्ट होने, और एपी से मिले अनुरोधों के आधार पर, बीएसएसआईडी ब्लॉक किए जा सकते हैं. एपी से यह अनुरोध किया जाता है कि वह कुछ समय के लिए, असोसिएशन की कोशिश न करे (एमबीओ-ओसीई). बीएसएसआईडी को ब्लॉक करने के बारे में, एसएसआईडी और बीएसएसआईडी को ब्लॉक करने से जुड़े सेक्शन में बताया गया है.

    • जब डिवाइस चल रहा हो (चाहे कम या ज़्यादा स्पीड पर), तो स्कैन के नतीजों से सभी कैरियर नेटवर्क को फ़िल्टर कर दिया जाता है. मोबाइल और इंटरनेट सेवा देने वाली कुछ कंपनियों को इस फ़िल्टर से बाहर रखा जा सकता है. इसके लिए, config_wifiMobilityFilterCarrierIdBlocklist में उनका कैरियर आईडी जोड़ें.

    • जब डिवाइस तेज़ी से घूम रहा होता है, तो स्कैन के नतीजों को और फ़िल्टर किया जाता है. इससे उन BSSID को हटाया जाता है जिनका आरएसएसआई तेज़ी से बदलता है. इससे पता चलता है कि वे डिवाइस के साथ नहीं घूम रहे हैं. इस ऑप्टिमाइज़ेशन को config_wifiHighMovementNetworkSelectionOptimizationEnabled (ऑप्टिमाइज़ेशन को चालू या बंद करना) और config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs और config_wifiHighMovementNetworkSelectionOptimizationRssiDelta ओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है. ये ओवरले, स्कैन के नतीजों में स्थिरता की ज़रूरत को कॉन्फ़िगर करते हैं. जैसे, स्कैन के नतीजों में आरएसएसआई में बदलाव (समय के हिसाब से अलग-अलग स्कैन के नतीजों में आरएसएसआई में बदलाव).

  3. फ़्रेमवर्क, उम्मीदवार के स्कोरर को चलाता है, ताकि हर एसएसआईडी उम्मीदवार के लिए स्कोर जनरेट किया जा सके. एसएसआईडी के लिए चुने गए नेटवर्क में, कई बीएसएसआईडी शामिल हो सकते हैं. ये बीएसएसआईडी, नेटवर्क के लिए चुने गए नेटवर्क से जनरेट होते हैं. सबसे ज़्यादा स्कोर पाने वाला उम्मीदवार, विजेता उम्मीदवार होता है.

  4. फ़्रेमवर्क, उपयोगकर्ता के चुने गए नेटवर्क एल्गोरिदम को लागू करता है. इससे ऐसा हो सकता है कि उपयोगकर्ता के चुने गए नेटवर्क को, कैंडिडेट स्कोरर से मिले सबसे अच्छे नेटवर्क के बजाय, नया सबसे अच्छा नेटवर्क बना दिया जाए.

  5. यह फ़्रेमवर्क यह तय करता है कि जीतने वाला उम्मीदवार, कनेक्ट किए गए नेटवर्क से मेल खाता है या नहीं. किसी व्यक्ति को मैच माना जाने के लिए, इनमें से कोई एक शर्त पूरी होनी चाहिए:

    • चुने गए उम्मीदवार और कनेक्ट किए गए वाई-फ़ाई नेटवर्क का BSSID एक ही है.
    • अगर फ़र्मवेयर रोमिंग की सुविधा उपलब्ध है (इसमें BSSID ब्लॉकलिस्ट करने की सुविधा भी शामिल है), तो कनेक्ट किए गए नेटवर्क और सबसे अच्छा सिग्नल देने वाले नेटवर्क का SSID और सुरक्षा टाइप एक जैसा होता है.

    अगर जीतने वाला उम्मीदवार, कनेक्ट किए गए नेटवर्क से मेल खाता है, तो कोई और कार्रवाई नहीं की जाती. अगर सबसे ज़्यादा स्कोर पाने वाला उम्मीदवार, नेटवर्क से मैच नहीं करता है, तो डिवाइस सबसे ज़्यादा स्कोर पाने वाले उम्मीदवार से कनेक्ट हो जाता है.

कनेक्ट किए गए नेटवर्क का आकलन

Android फ़्रेमवर्क या फ़र्मवेयर, कनेक्ट किए गए नेटवर्क की क्वालिटी का समय-समय पर आकलन करता है. इस सेक्शन में बताया गया है कि स्क्रीन चालू या बंद होने पर, कनेक्ट किए गए नेटवर्क का आकलन कैसे किया जाता है.

यह आकलन, नेटवर्क चुनने के अलावा किया जाता है. इसके बारे में पिछले सेक्शन में बताया गया है.

स्क्रीन चालू करें

Android फ़्रेमवर्क, कनेक्ट किए गए नेटवर्क का आकलन इस तरह करता है:

  1. वाई-फ़ाई सेवा, हर तीन सेकंड में आरएसएसआई और लिंक-लेयर के आंकड़ों को पोल करती है. इसे config_wifiPollRssiIntervalMilliseconds ओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है.

    अगर config_wifiAdjustPollRssiIntervalEnabled ओवरले का इस्तेमाल करके, डाइनैमिक इंटरवल अडजस्टमेंट की सुविधा चालू की जाती है, तो डिवाइस की मोबिलिटी की स्थिति और आरएसएसआई के आधार पर, पोलिंग इंटरवल डाइनैमिक तरीके से बदलता है.

    • जब डिवाइस एक जगह पर स्थिर होता है और आरएसएसआई -68 dBm से ज़्यादा होता है, तब पोलिंग इंटरवल को बढ़ाकर छह सेकंड कर दिया जाता है. डिवाइस के स्थिर होने की जानकारी config_wifiPollRssiLongIntervalMilliseconds ओवरले से मिलती है. वहीं, आरएसएसआई की जानकारी config_wifiClientRssiMonitorThresholdDbm और config_wifiClientRssiMonitorHysteresisDb ओवरले से मिलती है.
    • जब डिवाइस स्थिर नहीं होता या आरएसएसआई -73 dBm से कम होता है, तब पोलिंग इंटरवल को वापस तीन सेकंड पर सेट कर दिया जाता है. यह config_wifiPollRssiIntervalMilliseconds ओवरले से कॉन्फ़िगर किया जाता है.config_wifiClientRssiMonitorThresholdDbm
  2. वाई-फ़ाई सेवा, आरएसएसआई और लिंक-लेयर के आंकड़ों के आधार पर कनेक्टेड स्कोर का हिसाब लगाती है. इस कैलकुलेशन के लिए, दो मॉडल उपलब्ध हैं. इन्हें config_internalScorerType के साथ कॉन्फ़िगर किया जा सकता है:

    • डिफ़ॉल्ट: मशीन लर्निंग पर आधारित स्कोरर, जिसे लिंक लेयर के आंकड़ों के आधार पर ट्रेन किया गया है.
    • विकल्प: यह पुराना स्कोरर है. यह आरएसएसआई वैल्यू में हुए बदलावों के आधार पर आकलन करता है.
  3. ज़रूरी नहीं: ओईएम, कनेक्ट किए गए नेटवर्क के आकलन के लॉजिक को पसंद के मुताबिक बना सकते हैं. इसके लिए, उन्हें बाहरी स्कोरर ऐप्लिकेशन लागू करना होगा. ऐसा WifiConnectedNetworkScorer इंटरफ़ेस लागू करके किया जाता है. साथ ही, इसे WifiManager#setWifiConnectedNetworkScorer(executor, scorer) एपीआई का इस्तेमाल करके रजिस्टर किया जाता है.

    रजिस्टर करने के बाद, बाहरी स्कोरर इन दोनों तरीकों से फ़्रेमवर्क के साथ इंटरैक्ट करता है:

    • इनपुट (फ़्रेमवर्क → स्कोरर)
      फ़्रेमवर्क, स्कोरर को लाइफ़साइकल और क्वालिटी से जुड़े मुख्य इवेंट की सूचना देता है:

      • सेशन का लाइफ़साइकल: onStart() और onStop() से पता चलता है कि वाई-फ़ाई कनेक्शन कब शुरू या बंद किया गया.
      • वाई-फ़ाई के आंकड़े: स्कोरर को लिंक लेयर के आंकड़ों के बारे में समय-समय पर अपडेट मिलते हैं. जैसे, आरएसएसआई, लिंक की स्पीड, और पैकेट की संख्या. इसके लिए, वह OnWifiUsabilityStatsListener#onWifiUsabilityStats() का इस्तेमाल करता है. ये अपडेट पाने के लिए, स्कोरर को WifiManager#addOnWifiUsabilityStatsListener() का इस्तेमाल करके लिसनर रजिस्टर करना होगा.
    • कार्रवाइयां (स्कोरर → फ़्रेमवर्क)
      स्कोरर, ScoreUpdateObserver कॉलबैक ऑब्जेक्ट पर तरीकों को कॉल करके, वाई-फ़ाई सेवा को निर्देश देता है:

      • इस्तेमाल की जा सकने की स्थिति: कॉल करने की सुविधा notifyStatusUpdate(sessionId, isUsable) नेटवर्क चुनने की सुविधा को कंट्रोल करने का मुख्य तरीका है.
        • isUsable = true: नेटवर्क मान्य है. फ़्रेमवर्क, इसे सिस्टम ट्रैफ़िक के लिए डिफ़ॉल्ट नेटवर्क के तौर पर प्रमोट करता है.
        • isUsable = false: नेटवर्क अमान्य है. फ़्रेमवर्क इसे डिफ़ॉल्ट के तौर पर इस्तेमाल नहीं करता है. इससे मोबाइल डेटा पर फ़ॉलबैक ट्रिगर होता है.
      • पहुंच की जांच: कॉल करने पर, requestNudOperation() ट्रिगर होता है. इससे, आस-पास के डिवाइसों तक नहीं पहुंचने की समस्या का पता लगाने वाली सुविधा (एनयूडी) चालू हो जाती है. जैसे, एआरपी या एनडी जांच. इससे यह पुष्टि की जाती है कि गेटवे तक पहुंचा जा सकता है.
      • BSSID ब्लॉकलिस्टिंग: blocklistCurrentBssid() को कॉल करने से, डिवाइस को मौजूदा ऐक्सेस पॉइंट (एपी) से फिर से कनेक्ट होने से रोका जाता है. अगर स्कोरर को एपीआई से जुड़ी समस्याएं मिलती हैं, तो यह जानकारी काम की होती है.
  4. अगर किसी ओईएम ने तीसरे चरण में बताए गए तरीके से, अपना स्कोरर लागू किया है, तो वाई-फ़ाई सेवा, कनेक्ट किए गए नेटवर्क के आकलन से जुड़े फ़ैसलों को ओईएम स्कोरर पर छोड़ देती है.
    अगर किसी ओईएम ने अपना स्कोरर लागू नहीं किया है, तो वाई-फ़ाई सेवा, दूसरे चरण में कैलकुलेट किए गए स्कोर का इस्तेमाल करती है. इससे यह तय किया जाता है कि इंटरनेट के लिए मोबाइल डेटा पर स्विच करना है या नहीं.

स्क्रीन बंद है

फ़्रेमवर्क, कनेक्ट किए गए नेटवर्क पर जांच शुरू नहीं करता. हालांकि, अगर स्कैन अन्य कॉम्पोनेंट (जैसे, जगह की जानकारी देने वाली सेवाएं) शुरू करते हैं, तो नेटवर्क चुनने की प्रोसेस अब भी हो सकती है. फ़र्मवेयर, नेटवर्क की क्वालिटी का आकलन करता है. अगर नेटवर्क की क्वालिटी खराब होती है, तो फ़र्मवेयर रोम कर सकता है या (आखिरकार) नेटवर्क से अलग हो सकता है और होस्ट को चालू कर सकता है.

कनेक्टिविटी स्कैन

डिवाइस की स्क्रीन चालू है, बंद है और वाई-फ़ाई से कनेक्ट है या बंद है और वाई-फ़ाई से कनेक्ट नहीं है, इसके आधार पर स्कैन अपने-आप होते हैं.

स्क्रीन चालू करें

स्क्रीन चालू होने पर, फ़्रेमवर्क स्कैन करने के फ़ैसले को ज़्यादा इंटरवल पर ट्रिगर करता है. स्कैन करने के फ़ैसले के इंटरवल, config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec, और config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec ओवरले के साथ कॉन्फ़िगर किए जाते हैं. ये पूर्णांकों के ऐरे होते हैं. डिफ़ॉल्ट रूप से, स्कैनिंग के लिए 20, 40, 80, और 160 सेकंड के एक्सपोनेंशियल बैकऑफ़ इंटरवल का इस्तेमाल किया जाता है. इसके बाद, स्कैनिंग 160 सेकंड के इंटरवल पर की जा सकती है. ये इन ओवरले की डिफ़ॉल्ट वैल्यू हैं.

स्क्रीन की स्थिति बदलने पर, स्कैन के लिए तय किए गए समय को रीसेट कर दिया जाता है. जैसे, स्क्रीन चालू या बंद होने पर. इसके बाद, स्कैन 20 सेकंड के बाद फिर से शुरू हो जाता है.

(Android 13 और इसके बाद के वर्शन) अगर रनटाइम के दौरान स्कैन करने के लिए अलग-अलग इंटरवल की ज़रूरत होती है, तो ओईएम के खास ऐप्लिकेशन, WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) एपीआई को कॉल कर सकते हैं. इससे स्क्रीन चालू होने पर स्कैन करने का शेड्यूल डाइनैमिक तरीके से सेट किया जा सकता है.

स्कैन करने या न करने का फ़ैसला इस आधार पर लिया जाता है कि मौजूदा नेटवर्क कनेक्शन, स्कैनिंग को स्किप करने के लिए काफ़ी अच्छा है या नहीं. अगर इनमें से कोई भी शर्त पूरी होती है, तो कनेक्शन को स्कैनिंग को स्किप करने के लिए काफ़ी अच्छा माना जाता है:

  • डिवाइस, ऑनलाइन साइन अप (ओएसयू) कनेक्शन से कनेक्ट है.
  • कनेक्शन से काफ़ी ट्रैफ़िक आ रहा हो. ट्रैफ़िक थ्रेशोल्ड के बारे में बाद में जानें.
  • आरएसआई, ज़रूरी आरएसआई थ्रेशोल्ड से ज़्यादा है (आरएसआई थ्रेशोल्ड के बारे में बाद में जानें), और नेटवर्क को हाल ही में चुना गया है (डिफ़ॉल्ट रूप से 10 मिनट, लेकिन इसे config_wifiConnectedHighRssiScanMinimumWindowSizeSec ओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है), और नेटवर्क की पुष्टि हो गई है (इंटरनेट से कनेक्ट है) या उपयोगकर्ता ने इंटरनेट ऐक्सेस के बिना इस्तेमाल करने की अनुमति दी है.

आरएसएसआई और ट्रैफ़िक थ्रेशोल्ड ये हैं:

  • 2.4 गीगाहर्ट्ज़ बैंड के लिए आरएसएसआई, config_wifi_framework_wifi_score_low_rssi_threshold_24GHz ओवरले के साथ कॉन्फ़िगर किए गए -73 dBm से ज़्यादा हो या 5 गीगाहर्ट्ज़ और 6 गीगाहर्ट्ज़ बैंड के लिए, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz और config_wifiFrameworkScoreLowRssiThreshold6ghz ओवरले के साथ कॉन्फ़िगर किए गए -70 dBm से ज़्यादा हो.
  • config_wifiFrameworkMinPacketPerSecondActiveTraffic ओवरले के साथ कॉन्फ़िगर किए गए, हर सेकंड (पीपीएस) में 16 से ज़्यादा पैकेट ट्रांसमिट या रिसीव किए जा रहे हों.

डिवाइस कनेक्ट होने और स्क्रीन चालू होने पर, कनेक्ट किया गया स्कोरर समय-समय पर वाई-फ़ाई की क्वालिटी की निगरानी करता है. इसके लिए, वह आरएसएसआई और ट्रांसफ़र किए गए पैकेट की संख्या जैसे सिग्नल देखता है. अगर वाई-फ़ाई की क्वालिटी खराब पाई जाती है (जैसा कि बाद में बताया गया है) और डिवाइस में एक साथ दो स्टेशन इस्तेमाल किए जा सकते हैं, तो स्कैन शुरू हो जाता है. config_wifiLowConnectedScoreThresholdToTriggerScanForMbb ओवरले का इस्तेमाल, स्कोर थ्रेशोल्ड को कॉन्फ़िगर करने के लिए किया जा सकता है. इससे स्कैनिंग ट्रिगर होती है. config_wifiLowConnectedScoreScanPeriodSeconds ओवरले का इस्तेमाल करके, इन स्कैन की अवधि को कॉन्फ़िगर किया जा सकता है.

स्क्रीन बंद हो और वाई-फ़ाई से कनेक्ट हो

जब स्क्रीन बंद होती है और डिवाइस किसी वाई-फ़ाई नेटवर्क से कनेक्ट होता है, तो फ़र्मवेयर (वाई-फ़ाई एसओसी) रोमिंग स्कैन करता है. स्क्रीन बंद होने पर, फ़्रेमवर्क कोई स्कैन नहीं करता.

स्क्रीन बंद हो और वाई-फ़ाई से कनेक्ट न हो (डिसकनेक्ट की स्थिति)

स्क्रीन बंद होने और वाई-फ़ाई डिसकनेक्ट होने पर, फ़र्मवेयर एसएसआईडी के लिए पीएनओ स्कैन करता है. फ़्रेमवर्क, फ़र्मवेयर को एसएसआईडी की एक सूची के साथ कॉन्फ़िगर करता है. इससे फ़र्मवेयर, स्कैन करने के लिए एसएसआईडी की सूची और स्कैन करने के लिए चैनलों की सूची का इस्तेमाल करता है. अगर कॉन्फ़िगर किया गया कोई SSID मिलता है, तो फ़र्मवेयर फ़्रेमवर्क को चालू कर देता है.

फ़्रेमवर्क, उस इंटरवल को भी कॉन्फ़िगर करता है जिस पर फ़र्मवेयर को पीएनओ स्कैन करने होते हैं. इसके लिए, डिवाइस की मोबिलिटी की स्थिति का इस्तेमाल करके, स्कैन के अलग-अलग इंटरवल चुने जाते हैं. जब डिवाइस एक जगह पर रखा होता है, तब पहले तीन स्कैन के लिए स्कैन करने का इंटरवल 60 सेकंड होता है. इसे config_wifiStationaryPnoScanIntervalMillis ओवरले कंट्रोल करता है. इसके बाद के स्कैन के लिए, यह इंटरवल 180 सेकंड होता है. यह ओवरले के लिए तय किए गए इंटरवल का तीन गुना होता है. तेज़ी से चलने की स्थिति में, पहले तीन स्कैन के लिए इंटरवल 20 सेकंड होता है. इसे config_wifiMovingPnoScanIntervalMillis ओवरले कंट्रोल करता है. इसके बाद के स्कैन के लिए इंटरवल 60 सेकंड होता है. यह ओवरले के 3x मल्टीप्लायर के बराबर होता है.

नेटवर्क नॉमिनेटर

नेटवर्क नॉमिनेटर, उन नेटवर्क के लिए कॉन्फ़िगरेशन (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 का स्कोर मिलता है.

सेव किए गए वर्सेस सुझाव और बिना मीटर के वर्सेस मीटर किए गए (यानी, डिफ़ॉल्ट ओवरले वैल्यू) के लिए डिफ़ॉल्ट बोनस, सेव किए गए, सुझाए गए, मीटर किए गए, और बिना मीटर के लिए प्राथमिकता का क्रम तय करता है:

  1. ऐसे नेटवर्क सेव किए गए हैं जिनमें डेटा इस्तेमाल की कोई सीमा नहीं है
  2. बिना किसी शुल्क के डेटा इस्तेमाल करने की सुविधा देने वाले सुझाए गए नेटवर्क
  3. सेव किए गए सीमित डेटा वाले नेटवर्क
  4. सुझाए गए सीमित डेटा वाले नेटवर्क

इसका मतलब है कि सेव किए गए अनलिमिटेड (मुफ़्त) नेटवर्क को हमेशा सेव किए गए पेड नेटवर्क से पहले चुना जाता है. हाल ही में उपयोगकर्ता या ऐप्लिकेशन की ओर से चुने गए स्कोर बोनस से, इस प्राथमिकता को बदला जा सकता है.

फ़्रेमवर्क में कई कैंडिडेट स्कोरर इंस्टॉल किए जा सकते हैं. हालांकि, एक समय में सिर्फ़ एक स्कोरर चालू हो सकता है. अन्य स्कोरर का इस्तेमाल मेट्रिक के लिए किया जा सकता है, ताकि वैकल्पिक एल्गोरिदम की जांच की जा सके. Android 11 में, डिफ़ॉल्ट स्कोरर ThroughputScorer होता है.

SSID और BSSID को ब्लॉक करना

फ़्रेमवर्क, एसएसआईडी या बीएसएसआईडी को ब्लॉक कर सकता है. इसका मतलब है कि वह उन्हें कुछ समय के लिए या हमेशा के लिए कनेक्शन के लिए नहीं चुनेगा.

BSSID को ब्लॉक करना

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

  • इसके बाद, फ़ेल होने की वजह के हिसाब से काउंटर बढ़ जाता है.
  • अगर गड़बड़ी की उस टाइप के लिए तय की गई सीमा पूरी हो जाती है, तो:
    • BSSID को ब्लॉक किया गया है.
    • गड़बड़ी के लिए, स्ट्रीक काउंटर बढ़ जाता है.

किसी BSSID को ब्लॉक करने की अवधि, कॉन्फ़िगर की जा सकने वाली बेस वैल्यू से शुरू होती है. इस बेस वैल्यू को config_wifiBssidBlocklistMonitorBaseBlockDurationMs या config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs ओवरले से तय किया जाता है. यह आरएसएसआई पर निर्भर करता है. इसके बाद, यह अवधि तेज़ी से बढ़ती है और config_wifiBssidBlocklistMonitorFailureStreakCap ओवरले में बताई गई कॉन्फ़िगर की जा सकने वाली ऊपरी सीमा तक पहुंच जाती है. अगर एक ही BSSID पर कनेक्शन बार-बार फ़ेल होता है, तो यह अवधि बढ़ जाती है. अवधि, बेस अवधि होती है. यह लगातार फ़ेल होने की वजह से, तेज़ी से बढ़ती है. उदाहरण के लिए, लगातार दो बार फ़ेल होने का मतलब है कि बेस ब्लॉक की अवधि चार गुना हो गई है.

बीएसएसआईडी को ब्लॉक करने के थ्रेशोल्ड, कनेक्शन में आने वाली समस्या की वजह पर निर्भर करते हैं. साथ ही, ओवरले का इस्तेमाल करके इन्हें पसंद के मुताबिक बनाया जा सकता है:

  • एपी, एमबीओ/ओसीई का इस्तेमाल करके असोसिएशन को अस्वीकार करता है नया एसटीए हैंडल नहीं किया जा सकता कोड: 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_STA
    • REASON_WRONG_PASSWORD
    • REASON_EAP_FAILURE
    • REASON_ASSOCIATION_REJECTION
    • REASON_ASSOCIATION_TIMEOUT
    • REASON_AUTHENTICATION_FAILURE
    • REASON_ABNORMAL_DISCONNECT (यह कुकी सिर्फ़ तब मिटाई जाती है, जब डिवाइस इस BSSID से तीन घंटे पहले कनेक्ट हुआ हो)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • नेटवर्क की पुष्टि हो जाने पर, इन गड़बड़ी कोड के लिए काउंटर रीसेट हो जाते हैं:

    • REASON_NETWORK_VALIDATION_FAILURE
  • डीएचसीपी प्रोविज़निंग के पूरा होने पर, गड़बड़ी के इस कोड के लिए काउंटर रीसेट हो जाते हैं:

    • REASON_DHCP_FAILURE

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 पुष्टि करने में अन्य गड़बड़ियां (यानी कि गलत पासवर्ड या ईएपी से जुड़ी गड़बड़ी नहीं है) 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 ओवरले का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है.

रीबूट करने के बाद भी, उपयोगकर्ता के चुने गए नेटवर्क से कनेक्ट रहने का विकल्प बना रहता है. उपयोगकर्ता के पास कनेक्ट करने का विकल्प होता है. यह विकल्प, सेव किए गए नेटवर्क, पासपॉइंट नेटवर्क, और सुझाए गए नेटवर्क के लिए काम करता है.

एक साथ दो स्टेशन कनेक्ट करने की सुविधा

इस सेक्शन में, वाई-फ़ाई नेटवर्क चुनने के बारे में बताया गया है. यह तब होता है, जब कोई डिवाइस एक साथ दो वाई-फ़ाई नेटवर्क से कनेक्ट हो सकता है.

मेक-बिफ़ोर-ब्रेक

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

एक साथ प्रतिबंधित और इंटरनेट कनेक्शन

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

जब नेटवर्क चुनने का एल्गोरिदम, स्कैन के ऐसे नतीजे ढूंढता है जो ओईएम के लिए उपलब्ध कराए गए सुझाव या निजी सुझाव से मेल खाते हैं, तो यह दूसरे नेटवर्क के तौर पर उससे अपने-आप कनेक्ट हो जाता है. मुख्य वाई-फ़ाई नेटवर्क (जो सामान्य ऐप्लिकेशन को इंटरनेट कनेक्शन देता है) के लिए नेटवर्क चुनने की प्रोसेस, सामान्य तौर पर साथ-साथ होती है.

अक्सर पूछे जाने वाले सवाल (एफ़एक्यू)

  1. क्या सुरक्षित नेटवर्क को हमेशा ओपन नेटवर्क से ज़्यादा प्राथमिकता मिलती है?

    नहीं. सेव किए गए बनाम सुझाए गए और सीमित डेटा वाले बनाम बिना सीमा वाले नेटवर्क, मुख्य कैटगरी हैं जिनमें नेटवर्क का आकलन किया जाता है. हर कैटगरी में, सुरक्षित नेटवर्क को सबके लिए उपलब्ध नेटवर्क की तुलना में कुछ प्राथमिकता दी जाती है. हालांकि, कनेक्शन की क्वालिटी को ज़्यादा महत्व दिया जाता है.

    ऐसा इसलिए है, क्योंकि उपयोगकर्ता के डेटा को एंड-टू-एंड एन्क्रिप्शन (उदाहरण के लिए, टीएलएस) की मदद से सुरक्षित किया जाता है. सुरक्षित नेटवर्क, बातचीत के सिर्फ़ पहले चरण को एन्क्रिप्ट (सुरक्षित) करते हैं. साथ ही, पहले से शेयर की गई कुंजियों वाले नेटवर्क के लिए, वे ज़्यादा निजता नहीं देते.

  2. सुझाए गए नेटवर्क के मुकाबले, सेव किए गए नेटवर्क को प्राथमिकता क्यों दी जाती है?

    सुझाए गए मुफ़्त नेटवर्क के मुकाबले, सेव किए गए मुफ़्त (अनलिमिटेड डेटा वाले) नेटवर्क को प्राथमिकता दी जाती है. इसी तरह, सुझाए गए सीमित डेटा वाले नेटवर्क के मुकाबले, सेव किए गए सीमित डेटा वाले नेटवर्क को प्राथमिकता दी जाती है.

    सुझाए गए नेटवर्क के मुकाबले, सेव किए गए नेटवर्क को प्राथमिकता दी जाती है. ऐसा इसलिए, क्योंकि ये ऐसे नेटवर्क होते हैं जिन्हें उपयोगकर्ता ने डिवाइस में खुद जोड़ा होता है. इसका मतलब है कि जब भी हो सके, इन नेटवर्क से कनेक्ट करने की प्राथमिकता दी जाती है.

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

  3. क्या मैं सख्त प्राथमिकता के क्रम को बदल सकता/सकती हूं या इसे पूरी तरह से हटा सकता/सकती हूं?

    पिछले सेक्शन में दी गई बोनस ओवरले में बदलाव करके, नेटवर्क चुनने से जुड़े फ़ैसलों में बदलाव किया जा सकता है. हालांकि, डिफ़ॉल्ट वैल्यू बदलने का सुझाव नहीं दिया जाता, क्योंकि इन्हें कई इस्तेमाल के उदाहरणों पर विचार करने के बाद चुना गया है.