ওয়াই-ফাই নেটওয়ার্ক বেছে নেওয়া

ওয়াই-ফাই নেটওয়ার্ক বেছে নেওয়া ও একটি থেকে অন্যটিতে পরিবর্তন করার জন্য Android 12-এ ব্যবহৃত অ্যালগরিদম ও পদ্ধতি এই পৃষ্ঠায় উল্লেখ করা হয়েছে। Android ক্রমাগত কানেক্ট করা নেটওয়ার্কের কোয়ালিটি মূল্যায়ন করে এবং উপলভ্য নেটওয়ার্কের কোয়ালিটি অ্যাসেস করে।

অটোমেটিক কানেকশনের মেয়াদ

এই বিভাগে, Android-পরিচালিত ডিভাইস কীভাবে উপলভ্য ওয়াই-ফাই নেটওয়ার্ক অ্যাসেস করে ও কানেক্ট করে তা বর্ণনা করা হয়েছে।

  1. স্ক্রিন চালু বা বন্ধ আছে কিনা তার উপর নির্ভর করে, ডিভাইসটি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটিতে উপলভ্য নেটওয়ার্কের জন্য স্ক্যান করে,

    • স্ক্রিন চালু (কানেক্ট করা): Android কানেক্টিভিটি সাবসিস্টেম নিয়মিতভাবে মূল্যায়ন করে দেখে যে বর্তমান কানেকশন স্ক্যানিং এড়িয়ে যাওয়ার মতো যথেষ্ট ভালো কিনা (স্ক্রিন-অন স্ক্যান-এ যেমন বর্ণনা করা আছে)। স্ক্যান এড়িয়ে যাওয়ার জন্য কানেকশন যথেষ্ট ভাল না হলে, কানেক্টিভিটি সাবসিস্টেম উপলভ্য নেটওয়ার্ক শনাক্ত করতে একটি স্ক্যান ট্রিগার করে। এছাড়াও, লোকেশন সিস্টেম বা কোনও অ্যাপ (যার মধ্যে সেটিংস অ্যাপও পড়ে) ইত্যাদির মতো অন্যান্য সিস্টেম কম্পোনেন্ট এই স্ক্যান ট্রিগার করতে পারে।
    • স্ক্রিন চালু (ডিসকানেক্ট করা): Android কানেক্টিভিটি সাবসিস্টেম এক্সপোনেনশিয়াল ব্যাকঅফ শিডিউল মেনে পিরিয়ডিক স্ক্যান ইস্যু করে। মডিউলটি প্রাপ্ত সমস্ত স্ক্যান ফলাফল মূল্যায়ন করে এবং কানেক্ট করার জন্য সেরা নেটওয়ার্ক বেছে নেওয়ার চেষ্টা করে।
    • স্ক্রিন বন্ধ (ডিসকানেক্ট করা): স্ক্রিন বন্ধ হয়ে যাওয়ার সাথে সাথেই হোস্ট CPU, পছন্দের নেটওয়ার্ক অফলোড (PNO) স্ক্যান ব্যবহার করে পছন্দের নেটওয়ার্কের তালিকা সহ ফার্মওয়্যার প্রোগ্রাম করে। ফার্মওয়্যার কোনও পছন্দের নেটওয়ার্ক খুঁজে পেলে হোস্টকে জাগিয়ে তোলে। AOSP ধরে নেয় যে ডিভাইসে PNO কাজ করে।

    অটোমেটিক কানেকশন বন্ধ করতে WifiManager#allowAutojoinGlobal(boolean) পদ্ধতি ব্যবহার করা যেতে পারে। এটি একটি বিশেষ API যা ডিভাইস প্রস্তুতকারকরা সীমিত পরিস্থিতিতে ব্যবহার করতে পারেন (যেমন, মোবাইল নয়, আগে থেকে কনফিগার করা ডিভাইস)।

    ডিভাইস কানেক্ট করা থাকলে এবং config_wifi_framework_enable_associated_network_selection ওভারলে false হিসেবে সেট করা থাকলে, কোনও কানেক্টিভিটি স্ক্যান করা হয় না এবং স্ক্যানের ফলাফল নেটওয়ার্ক বেছে নেওয়াকে ট্রিগার করে না। ডিভাইস ডিসকানেক্ট করা থাকলে এই সেটিংয়ের কোনও প্রভাব পড়ে না, অর্থাৎ কানেক্টিভিটি স্ক্যান ও নেটওয়ার্ক বেছে নেওয়ার কাজ তখনও চলতে থাকে।

  2. স্ক্যানের ফলাফল মূল্যায়ন করা হয়।

    • ডিভাইসটি কোনও ওয়াই-ফাই নেটওয়ার্কের সাথে কানেক্ট করা থাকলে, ফ্রেমওয়ার্ক মূল্যায়ন করে দেখে যে বর্তমান নেটওয়ার্কটি নেটওয়ার্ক বেছে নেওয়ার প্রসেস এড়িয়ে যাওয়ার মতো যথেষ্ট ভাল কিনা।

      কোনও নেটওয়ার্ককে নেটওয়ার্ক বেছে নেওয়ার প্রসেস এড়িয়ে যাওয়ার মতো যথেষ্ট ভালো হিসেবে তখনই বিবেচনা করা হয়, যদি নিচে উল্লেখ করা প্রয়োজনীয়তার মধ্যে কোনও একটি পূরণ হয়:

      • শেষবার নেটওয়ার্ক বেছে নেওয়ার পর থেকে ১০ সেকেন্ডের কম সময় অতিবাহিত হয়েছে।
      • ব্যবহারকারী সম্প্রতি ম্যানুয়ালি নেটওয়ার্কে কানেক্ট করেছেন (যেখানে সম্প্রতি config_wifiSufficientDurationAfterUserSelectionMilliseconds ওভারলে ব্যবহার করে কনফিগার করা যায়)।
      • ডিভাইসটি অনলাইন সাইন-আপ (OSU) কানেকশনের সাথে কানেক্ট করা আছে।
      • নিম্নলিখিত সব শর্ত পূরণ করা হয়েছে:

        • প্রাপ্য সিগন্যাল স্ট্রেংথ ইনডিকেশন (RSSI) হল প্রয়োজনীয় RSSI থ্রেশহোল্ডের চেয়ে বেশি অথবা কানেকশনের মাধ্যমে পর্যাপ্ত ট্রাফিক ফ্লো হচ্ছে (RSSI ও ট্রাফিক থ্রেশহোল্ডের জন্য স্ক্রিন-অন স্ক্যান দেখুন)।
        • নেটওয়ার্কটি যাচাই করা হয়েছে (ইন্টারনেটের সাথে কানেক্ট করা আছে) অথবা ইন্টারনেট অ্যাক্সেস ছাড়াই ব্যবহারের জন্য ব্যবহারকারী অনুমোদন করেছেন।
        • নেটওয়ার্ক আনমিটারেড।
    • নেটওয়ার্ক নেটওয়ার্ক বেছে নেওয়ার প্রসেস এড়িয়ে যাওয়ার মতো ভাল হলে, আর কোনও অ্যাকশন নেওয়া হয় না।

    • কানেক্ট করা ওয়াই-ফাই নেটওয়ার্ক যথেষ্ট ভাল না হলে অথবা ডিভাইস কোনও নেটওয়ার্কের সাথে কানেক্ট করা না থাকলে, ফ্রেমওয়ার্ক নেটওয়ার্ক নমিনেটরকে কল করে ফিল্টার করা স্ক্যান ফলাফলের উপর ভিত্তি করে কানেক্ট করার জন্য উপযুক্ত ওয়াই-ফাই নেটওয়ার্কের একটি তালিকা তৈরি করে। নেটওয়ার্ক নমিনেটররা আগে থেকে থাকা ওয়াই-ফাই কনফিগারেশন খুঁজে পান অথবা সম্ভাব্য নেটওয়ার্কের জন্য নতুন কনফিগারেশন তৈরি করেন।

    • এন্ট্রি RSSI-এর থেকে কম RSSI থাকা BSSID সরিয়ে দিতে স্ক্যান ফলাফল ফিল্টার করা হয় (config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz এবং config_wifiFrameworkScoreEntryRssiThreshold6ghz ওভারলে ব্যবহার করে কনফিগার করা যায়)। এছাড়াও, ব্লক করা BSSID ফিল্টার করা হয়। বারবার কানেকশন ব্যর্থ হলে, ঘন ঘন ডিসকানেক্ট হলে এবং AP-এর থেকে নির্দিষ্ট সময়ের জন্য অ্যাসোসিয়েশন চেষ্টা না করার স্পষ্ট অনুরোধ (MBO-OCE) এলে BSSID ব্লক করা যেতে পারে। BSSID ব্লক করার বিষয়টি SSID ও BSSID ব্লক করার বিভাগে বর্ণনা করা হয়েছে।

    • ডিভাইসটি মুভ করলে (কম বা বেশি স্পিডে), স্ক্যান ফলাফলে সবকটি পরিষেবা প্রদানকারী নেটওয়ার্ক ফিল্টার করে বাদ দেওয়া হয়। এই ফিল্টার থেকে নির্দিষ্ট পরিষেবা প্রদানকারীকে বাদ দিতে config_wifiMobilityFilterCarrierIdBlocklist-এ তাদের পরিষেবা প্রদানকারী আইডি যোগ করুন।

    • ডিভাইসটি দ্রুত গতিতে চললে, স্ক্যান ফলাফল ঐচ্ছিকভাবে আরও ফিল্টার করা হয় যাতে BSSID-গুলি সরানো যায়, যার RSSI দ্রুত পরিবর্তিত হয় (একটি ইঙ্গিত যে তারা ডিভাইসের সাথে চলছে না)। এই অপ্টিমাইজেশন config_wifiHighMovementNetworkSelectionOptimizationEnabled (অপ্টিমাইজেশন চালু বা বন্ধ করা) এবং config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs ও config_wifiHighMovementNetworkSelectionOptimizationRssiDelta ওভারলে ব্যবহার করে কনফিগার করা যায়, যা স্ক্যান ফলাফলে স্টেবিলিটি সংক্রান্ত প্রয়োজনীয়তা কনফিগার করে (স্ক্যান ফলাফলে RSSI পরিবর্তন সময়ের নিরিখে যথেষ্ট আলাদা)।

  3. প্রতিটি SSID ক্যান্ডিডেটের জন্য স্কোর জেনারেট করতে ফ্রেমওয়ার্ক ক্যান্ডিডেট স্কোরার রান করায়। SSID ক্যান্ডিডেটে একাধিক BSSID ক্যান্ডিডেট (নেটওয়ার্ক নমিনেটর দ্বারা জেনারেট করা) থাকতে পারে। সবচেয়ে বেশি স্কোর পাওয়া প্রার্থীই হলেন জয়ী প্রার্থী।

  4. ফ্রেমওয়ার্কটি ব্যবহারকারীর কানেক্ট করার পছন্দ অ্যালগরিদমটি এক্সিকিউট করে, যা ক্যান্ডিডেট স্কোরার থেকে জেতা ক্যান্ডিডেট ব্যবহার করার পরিবর্তে ব্যবহারকারীর বেছে নেওয়া নেটওয়ার্ককে নতুন জেতা ক্যান্ডিডেট হিসেবে বেছে নিতে পারে।

  5. ফ্রেমওয়ার্ক নির্ধারণ করে যে বিজয়ী প্রার্থী কানেক্ট করা নেটওয়ার্কের সাথে ম্যাচ করছে কিনা। ম্যাচ হিসেবে বিবেচনা করতে, নিম্নলিখিত শর্তগুলির মধ্যে একটি পূরণ করতে হবে:

    • জয়ী প্রার্থী এবং কানেক্ট করা ওয়াই-ফাই নেটওয়ার্কের একই BSSID আছে।
    • ফার্মওয়্যার রোমিং উপলভ্য থাকলে (BSSID ব্লক করার সুবিধা সহ), সবচেয়ে উপযুক্ত ক্যান্ডিডেট ও কানেক্ট করা নেটওয়ার্কের SSID একই হবে এবং নিরাপত্তার ধরনও একই হবে।

    জয়ী ক্যান্ডিডেট কানেক্ট করা নেটওয়ার্কের সাথে ম্যাচ করলে, আর কোনও অ্যাকশন নেওয়া হয় না। যদি বিজয়ী প্রার্থী নেটওয়ার্কের সাথে না মেলে, তাহলে ডিভাইসটি বিজয়ী প্রার্থীর সাথে অ্যাসোসিয়েট হয়।

কানেক্ট করা নেটওয়ার্কের মূল্যায়ন

Android ফ্রেমওয়ার্ক বা ফার্মওয়্যার কানেক্ট করা নেটওয়ার্কের কোয়ালিটি পর্যায়ক্রমে মূল্যায়ন করে। স্ক্রিন চালু বা বন্ধ থাকাকালীন কীভাবে কানেক্ট করা নেটওয়ার্ক মূল্যায়ন করা হয় তা এই বিভাগে বর্ণনা করা হয়েছে।

আগের বিভাগে আলোচনা করা নেটওয়ার্ক বেছে নেওয়া ছাড়াও এই মূল্যায়ন করা হয়।

স্ক্রিন চালু

Android ফ্রেমওয়ার্ক নিম্নলিখিত উপায়ে কানেক্ট করা নেটওয়ার্ক মূল্যায়ন করে:

  1. ওয়াই-ফাই পরিষেবা প্রতি ৩ সেকেন্ড অন্তর RSSI এবং লিঙ্ক-লেয়ার পরিসংখ্যান পোল করে (config_wifiPollRssiIntervalMilliseconds ওভারলে ব্যবহার করে কনফিগার করা যায়)।

    config_wifiAdjustPollRssiIntervalEnabled ওভারলে ব্যবহার করে ডায়নামিক ইন্টারভাল অ্যাডজাস্টমেন্ট চালু করা থাকলে, ডিভাইসের গতিশীলতার অবস্থা এবং RSSI-এর উপর ভিত্তি করে পোলিং ইন্টারভাল ডায়নামিকভাবে পরিবর্তিত হয়।

    • ডিভাইসটি স্থির থাকলে এবং RSSI -৬৮ dBm-এর থেকে বেশি হলে (config_wifiClientRssiMonitorThresholdDbm এবং config_wifiClientRssiMonitorHysteresisDb ওভারলে দ্বারা কনফিগার করা) পোলিং ইন্টারভ্যাল ৬ সেকেন্ডে বাড়ানো হয় (config_wifiPollRssiLongIntervalMilliseconds ওভারলে দ্বারা কনফিগার করা)।
    • ডিভাইস নন-স্টেশনারি বা RSSI -৭৩ dBm-এর কম হলে (যা config_wifiClientRssiMonitorThresholdDbm ওভারলে দ্বারা কনফিগার করা হয়), পোলিং ইন্টারভ্যাল কমিয়ে ৩ সেকেন্ড করা হয় (যা config_wifiPollRssiIntervalMilliseconds ওভারলে দ্বারা কনফিগার করা হয়)।
  2. RSSI ও লিঙ্ক-লেয়ার পরিসংখ্যানের উপর ভিত্তি করে ওয়াই-ফাই পরিষেবা কানেক্ট করা স্কোর গণনা করে। এই গণনা করার জন্য দুটি উপলভ্য মডেল আছে, config_internalScorerType-এর সাথে কনফিগার করা যায়:

    • ডিফল্ট: লিঙ্ক লেয়ারের পরিসংখ্যানের উপর ভিত্তি করে প্রশিক্ষিত মেশিন লার্নিং-ভিত্তিক স্কোরার।
    • বিকল্প: একটি পুরনো স্কোরার যা RSSI ভ্যালুর পরিবর্তনের উপর ভিত্তি করে মূল্যায়ন করে।
  3. ঐচ্ছিক: OEM এক্সটার্নাল স্কোরার অ্যাপ প্রয়োগ করে কানেক্ট করা নেটওয়ার্ক মূল্যায়ন লজিক কাস্টমাইজ করতে পারে। এটি WifiConnectedNetworkScorer ইন্টারফেস প্রয়োগ করে এবং WifiManager#setWifiConnectedNetworkScorer(executor, scorer) API ব্যবহার করে রেজিস্টার করে করা হয়।

    রেজিস্টার করা হলে, এক্সটার্নাল স্কোরার নিম্নলিখিত দ্বিমুখী ফ্লোয়ের মাধ্যমে ফ্রেমওয়ার্কের সাথে ইন্টার‍্যাক্ট করে:

    • ইনপুট (ফ্রেমওয়ার্ক → স্কোরার)
      ফ্রেমওয়ার্ক স্কোরারকে গুরুত্বপূর্ণ লাইফসাইকেল ও কোয়ালিটি ইভেন্ট সম্পর্কে বিজ্ঞপ্তি পাঠায়:

      • সেশন লাইফসাইকেল: onStart() এবং onStop() থেকে বোঝা যায় যে কখন ওয়াই-ফাই কানেকশন শুরু বা বন্ধ করা হয়েছে।
      • ওয়াই-ফাই পরিসংখ্যান: স্কোরার, OnWifiUsabilityStatsListener#onWifiUsabilityStats() ব্যবহার করে লিঙ্ক লেয়ার পরিসংখ্যানের (যেমন, RSSI, লিঙ্ক স্পিড ও প্যাকেট সংখ্যা) পিরিয়ডিক আপডেট পায়। এইসব আপডেট পেতে, স্কোরারকে অবশ্যই WifiManager#addOnWifiUsabilityStatsListener() ব্যবহার করে লিসেনার রেজিস্টার করতে হবে।
    • অ্যাকশন (স্কোরার → ফ্রেমওয়ার্ক)
      স্কোরার ScoreUpdateObserver কলব্যাক অবজেক্টে কলিং মেথডের মাধ্যমে ওয়াই-ফাই পরিষেবাকে নির্দেশ দেয়:

      • ব্যবহারযোগ্যতার স্ট্যাটাস: কলিং notifyStatusUpdate(sessionId, isUsable) হল নেটওয়ার্ক বেছে নেওয়ার প্রাথমিক পদ্ধতি।
        • isUsable = true: নেটওয়ার্ক সঠিক আছে। ফ্রেমওয়ার্ক সিস্টেম ট্রাফিকের জন্য এটিকে ডিফল্ট নেটওয়ার্ক হিসেবে প্রোমোট করে।
        • isUsable = false: নেটওয়ার্ক সঠিক নয়। ফ্রেমওয়ার্ক সেটি ডিফল্ট হিসেবে ব্যবহার করা এড়িয়ে যায়, এর ফলে মোবাইল ডেটা ব্যবহার করা হয়।
      • রিচেবিলিটি চেক: কল করা requestNudOperation() অ্যাক্টিভ নেভার আনরিচেবিলিটি ডিটেকশন (NUD) চেককে ট্রিগার করে (যেমন, ARP বা ND প্রোব) এটি যাচাই করতে যে গেটওয়েতে পৌঁছানো যাচ্ছে কিনা।
      • BSSID ব্লক করা: blocklistCurrentBssid() কল করলে ডিভাইসটি বর্তমান অ্যাক্সেস পয়েন্টের (AP) সাথে আবার অ্যাসোসিয়েট হতে পারে না। স্কোরার যদি AP-নির্দিষ্ট সমস্যা শনাক্ত করে, তাহলে এটি কাজে লাগে।
  4. কোনও OEM যদি ধাপ ৩-এ বর্ণিত পদ্ধতি অনুযায়ী নিজস্ব স্কোরার প্রয়োগ করে, তাহলে ওয়াই-ফাই পরিষেবা কানেক্ট করা নেটওয়ার্ক মূল্যায়নের সিদ্ধান্ত OEM স্কোরারের উপর ছেড়ে দেয়।
    কোনও OEM যদি নিজস্ব স্কোরার প্রয়োগ না করে, তাহলে ইন্টারনেটের জন্য মোবাইল ডেটায় সুইচ করা হবে কিনা তা নির্ধারণ করতে, ওয়াই-ফাই পরিষেবা ২ নম্বর ধাপে গণনা করা স্কোর ব্যবহার করে।

স্ক্রিন বন্ধ করা আছে

ফ্রেমওয়ার্ক কানেক্ট করা নেটওয়ার্কে মূল্যায়ন শুরু করে না, তবে অন্য কম্পোনেন্ট (যেমন, লোকেশন পরিষেবা) স্ক্যান শুরু করলে, নেটওয়ার্ক বেছে নেওয়ার প্রসেস এখনও চলতে পারে। ফার্মওয়্যার নেটওয়ার্কের কোয়ালিটি মূল্যায়ন করে এবং নেটওয়ার্কের কোয়ালিটি খারাপ হলে, ফার্মওয়্যার রোমিং করতে পারে অথবা (শেষ পর্যন্ত) নেটওয়ার্ক থেকে ডিসঅ্যাসোসিয়েট হয়ে হোস্টকে জাগিয়ে তুলতে পারে।

কানেক্টিভিটি স্ক্যান

ডিভাইসের স্ক্রিন চালু আছে, বন্ধ আছে এবং ওয়াই-ফাইয়ের সাথে কানেক্ট করা আছে অথবা স্ক্রিন বন্ধ আছে এবং ওয়াই-ফাইয়ের সাথে কানেক্ট করা নেই এইসব বিষয়ের উপর ভিত্তি করে অটোমেটিক স্ক্যান করা হয়।

স্ক্রিন চালু

স্ক্রিন চালু থাকলে ফ্রেমওয়ার্ক ক্রমবর্ধমান বিরতিতে স্ক্যান করার সিদ্ধান্ত ট্রিগার করে। স্ক্যান করার সিদ্ধান্ত নেওয়ার ইন্টারভ্যাল config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec এবং config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec ওভারলে (যা ইনটিজারের অ্যারে) দিয়ে কনফিগার করা হয়। ডিফল্ট হিসেবে, ২০, ৪০, ৮০ ও ১৬০ সেকেন্ডের এক্সপোনেনশিয়াল ব্যাকঅফ ইন্টারভ্যাল ব্যবহার করে স্ক্যান করা হয় এবং পরবর্তী স্ক্যানগুলি সম্ভবত ১৬০ সেকেন্ডের ইন্টারভ্যালে করা হয় (এগুলি হল এইসব ওভারলের ডিফল্ট ভ্যালু)।

স্ক্রিন স্টেট পরিবর্তন হলে, অর্থাৎ স্ক্রিন টগল করে চালু বা বন্ধ করা হলে, এক্সপোনেনশিয়াল ব্যাকঅফ স্ক্যান ইন্টারভ্যাল রিসেট হয়ে ২০ সেকেন্ডে রিস্টার্ট হয়।

(Android 13 ও তার পরবর্তী যেকোনও ভার্সন) রানটাইমে আলাদা আলাদা স্ক্যান ইন্টারভ্যালের প্রয়োজন হলে, OEM বিশেষ সুবিধা প্রাপ্ত অ্যাপ WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) API কল করে স্ক্রিন-অন স্ক্যান শিডিউল ডাইনামিক সেট করতে পারে।

স্ক্যান করা হবে নাকি বাদ দেওয়া হবে সেই সিদ্ধান্তটি বর্তমান নেটওয়ার্ক কানেকশন স্কিপ করার মতো যথেষ্ট ভালো কিনা তার উপর নির্ভর করে। নিচে উল্লেখ করা শর্তগুলির মধ্যে কোনও একটি পূরণ হলে, কানেকশনটি স্ক্যান করা এড়িয়ে যাওয়ার মতো যথেষ্ট ভালো বলে বিবেচিত হয়:

  • ডিভাইসটি অনলাইন সাইন-আপ (OSU) কানেকশনের সাথে কানেক্ট করা আছে।
  • কানেকশনের মাধ্যমে পর্যাপ্ত ট্রাফিক ফ্লো হচ্ছে (পরে ট্রাফিক থ্রেশহোল্ড দেখুন)।
  • প্রয়োজনীয় RSSI থ্রেশহোল্ডের থেকে RSSI বেশি (পরে RSSI থ্রেশহোল্ড দেখুন), এবং নেটওয়ার্ক বেছে নেওয়ার কাজটি সম্প্রতি করা হয়েছে (ডিফল্ট হিসেবে ১০ মিনিট, তবে config_wifiConnectedHighRssiScanMinimumWindowSizeSec ওভারলে ব্যবহার করে কনফিগার করা যাবে), এবং নেটওয়ার্কটি যাচাই করা হয়েছে (ইন্টারনেটের সাথে কানেক্ট করা আছে) অথবা ইন্টারনেট অ্যাক্সেস ছাড়াই ব্যবহার করার জন্য ব্যবহারকারী অনুমোদন করেছেন।

RSSI এবং ট্রাফিক থ্রেশহোল্ড হল:

  • RSSI-এর মান config_wifi_framework_wifi_score_low_rssi_threshold_24GHz ওভারলে সহ কনফিগার করা ২.৪ GHz ব্যান্ডের জন্য -৭৩ dBm-এর থেকে বেশি অথবা config_wifi_framework_wifi_score_low_rssi_threshold_5GHz ও config_wifiFrameworkScoreLowRssiThreshold6ghz ওভারলে সহ কনফিগার করা ৫ GHz ও ৬ GHz ব্যান্ডের জন্য -৭০ dBm-এর থেকে বেশি হতে হবে।
  • ট্রাফিক (ট্রান্সমিট বা রিসিভ) প্রতি সেকেন্ডে ১৬ প্যাকেটের (pps) বেশি config_wifiFrameworkMinPacketPerSecondActiveTraffic ওভারলে দিয়ে কনফিগার করা হয়েছে।

ডিভাইস কানেক্ট করা থাকলে এবং স্ক্রিন চালু থাকলে, কানেক্ট করা স্কোরার নিয়মিতভাবে RSSI এবং ট্রান্সফার করা প্যাকেটের সংখ্যার মতো সিগন্যাল দেখে ওয়াই-ফাই কোয়ালিটি মনিটর করে। ওয়াই-ফাইয়ের কোয়ালিটি খারাপ (যেমন পরে উল্লেখ করা হয়েছে) বলে নির্ধারণ করা হলে এবং ডিভাইসটি একই সাথে দুটি স্টেশন সাপোর্ট করলে, স্ক্যান ট্রিগার করা হয়। স্ক্যানিং ট্রিগার করে এমন স্কোর থ্রেশহোল্ড কনফিগার করতে config_wifiLowConnectedScoreThresholdToTriggerScanForMbb ওভারলে ব্যবহার করা যেতে পারে। এই স্ক্যানগুলির সময়সীমা কনফিগার করতে config_wifiLowConnectedScoreScanPeriodSeconds ওভারলে ব্যবহার করা যেতে পারে।

স্ক্রিন বন্ধ এবং ওয়াই-ফাইয়ের সাথে কানেক্ট করা আছে

স্ক্রিন বন্ধ থাকলে এবং ডিভাইস ওয়াই-ফাই নেটওয়ার্কের সাথে কানেক্ট করা থাকলে, ফার্মওয়্যার (ওয়াই-ফাই SoC) রোমিং স্ক্যান করে। স্ক্রিন বন্ধ থাকলে ফ্রেমওয়ার্ক কোনও স্ক্যান করে না।

স্ক্রিন বন্ধ এবং ওয়াই-ফাইয়ের সাথে কানেক্ট করা নেই (ডিসকানেক্ট করা অবস্থা)

স্ক্রিন বন্ধ এবং ওয়াই-ফাই ডিসকানেক্ট করা থাকলে, ফার্মওয়্যার SSIDs-এর জন্য PNO স্ক্যান করে। ফ্রেমওয়ার্কটি ফার্মওয়্যারকে স্ক্যান করার জন্য SSID-এর তালিকা এবং স্ক্যান করার জন্য চ্যানেলের তালিকা দিয়ে কনফিগার করে। কনফিগার করা কোনও SSID পাওয়া গেলে, ফার্মওয়্যার ফ্রেমওয়ার্ককে জাগিয়ে তোলে।

এছাড়াও, ফ্রেমওয়ার্কটি সেই ইন্টারভ্যাল কনফিগার করে যেটিতে ফার্মওয়্যারকে PNO স্ক্যান পারফর্ম করতে হবে, বিভিন্ন স্ক্যান ইন্টারভ্যাল বেছে নিতে ডিভাইস মোবিলিটি স্টেট ব্যবহার করে। কম মোবিলিটি স্টেটে (ডিভাইস স্থির অবস্থায় থাকলে), প্রথম তিনটি স্ক্যানের জন্য ইন্টারভ্যাল হল ৬০ সেকেন্ড (যা config_wifiStationaryPnoScanIntervalMillis ওভারলে দ্বারা নিয়ন্ত্রিত হয়) এবং পরবর্তী স্ক্যানের জন্য ১৮০ সেকেন্ড (ওভারলের একটি নির্দিষ্ট ৩x মাল্টিপ্লায়ার)। হাই মোবিলিটি স্টেটে, প্রথম তিনটি স্ক্যানের জন্য ব্যবধান হল ২০ সেকেন্ড (config_wifiMovingPnoScanIntervalMillis ওভারলে দ্বারা নিয়ন্ত্রিত) এবং পরবর্তী স্ক্যানের জন্য ৬০ সেকেন্ড (ওভারলের একটি নির্দিষ্ট ৩x গুণক)।

নেটওয়ার্ক নমিনেটর

নেটওয়ার্ক নমিনেটররা এমন নেটওয়ার্কের জন্য কনফিগারেশন (WifiConfiguration) খুঁজে পান বা তৈরি করেন যেগুলি:

  • উপলভ্য (স্ক্যান ফলাফল অনুযায়ী) বা কানেক্ট করা নেটওয়ার্ক (যা কখনও কখনও অনিয়মিত স্ক্যান ফলাফলে থাকে না)।
  • ন্যূনতম RSSI থাকতে হবে। ২.৪ GHz ব্যান্ডের জন্য ন্যূনতম RSSI হল -৮০ dBm এবং ৫ GHz ও ৬ GHz ব্যান্ডের জন্য -৭৭ dBm, যা config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz ও config_wifiFrameworkScoreEntryRssiThreshold6ghz ওভারলে ব্যবহার করে কনফিগার করা যায়।
  • ব্লক করা হয়নি, যেমন, আগে কানেকশন না হওয়ার কারণে।
  • নেটওয়ার্কটি এটি ব্যবহারযোগ্য নয় বলে ইঙ্গিত করে না (যেমন, MBO/OCE ব্যবহার করা)।
  • ডিভাইসে উপলভ্য ক্রেডেনশিয়াল ব্যবহার করে যুক্ত করা যেতে পারে।

নিম্নলিখিত নেটওয়ার্ক নমিনেটর ব্যবহার করা হয়:

  • সেভ করা নেটওয়ার্ক নমিনেটর: সব সেভ করা নেটওয়ার্ক (সেভ করা পাসপয়েন্ট সাবস্ক্রিপশন সহ) মূল্যায়ন করে।
  • সাজেস্ট করা নেটওয়ার্ক নমিনেটর: Suggestion API (সাজেস্ট করা Passpoint সাবস্ক্রিপশন সহ) ব্যবহার করে অ্যাপের মাধ্যমে প্রদান করা সব নেটওয়ার্ক মূল্যায়ন করে।

প্রার্থীদের স্কোরার

প্রতিটি প্রার্থীর মূল্যায়ন করে স্কোর দেন পরীক্ষকরা। ThroughputScorer-এর (ডিফল্ট স্কোরার) স্কোর নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে দেওয়া হয়:

  • RSSI-এর উপর ভিত্তি করে একটি বেস স্কোর গণনা করা হয় যেখানে RSSI-এর সর্বোচ্চ মান হল -73 dBm 2.4 GHz ব্যান্ডের জন্য অথবা -70 dBm হল 5 GHz এবং 6 GHz ব্যান্ডের জন্য (যা config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz এবং config_wifiFrameworkScoreLowRssiThreshold6ghz ওভারলে দিয়ে কনফিগার করা হয়)।
  • টেকনোলজি, চ্যানেল ফ্রিকোয়েন্সি, ব্যান্ডউইথ, RSSI, চ্যানেলের অবস্থা, স্পেশিয়াল স্ট্রিমের সর্বাধিক সংখ্যা এবং অন্যান্য প্যারামিটার থেকে প্রাপ্ত থ্রুপুট অনুমানের উপর ভিত্তি করে স্কোর বুস্ট গণনা করা হয়। config_wifiFrameworkThroughputBonusNumerator এবং config_wifiFrameworkThroughputBonusDenominator ওভারলে ব্যবহার করে স্কোর বুস্ট কনফিগার করা যায় এবং এটি config_wifiFrameworkThroughputBonusLimit ওভারলে ব্যবহার করে নির্দিষ্ট করা সর্বাধিক ভ্যালুর মধ্যে সীমাবদ্ধ থাকে।
  • ব্যবহারকারী বা অ্যাপের মাধ্যমে সম্প্রতি বেছে নেওয়া কোনও সম্ভাব্য নেটওয়ার্ক config_wifiFrameworkLastSelectionMinutes ওভারলে (সেই সময়সীমার জন্য ব্যবহারকারীর বেছে নেওয়া নেটওয়ার্কের পরিবর্তে বেছে নেওয়ার জন্য নেটওয়ার্কটি যাচাই করা হয়) ব্যবহার করে কনফিগার করা যায় এমন সময়সীমার জন্য অনেক বেশি স্কোর বুস্ট পায়।
  • বর্তমান নেটওয়ার্কের সাথে ম্যাচ করা কোনও ক্যান্ডিডেট config_wifiFrameworkCurrentNetworkBonusMin এবং config_wifiFrameworkCurrentNetworkBonusPercent ওভারলে দ্বারা কনফিগার করা স্কোর বুস্ট পায় (এটি RSSI এবং থ্রুপুট-ভিত্তিক স্কোরের শতাংশের উপর ভিত্তি করে অতিরিক্ত বোনাস পায়, কনফিগারযোগ্য ন্যূনতম পর্যন্ত)।
  • একটি সুরক্ষিত নেটওয়ার্ককে ওপেন নেটওয়ার্কের চেয়ে বেশি স্কোর দেওয়া হয়। config_wifiFrameworkSecureNetworkBonus ওভারলে ব্যবহার করে বোনাস কনফিগার করা হয়।
  • আনমিটার্ড (ফ্রি) নেটওয়ার্ককে মিটার্ড (পেমেন্ট করা) নেটওয়ার্কের চেয়ে বেশি স্কোর দেওয়া হয়। config_wifiFrameworkUnmeteredNetworkBonus ওভারলে ব্যবহার করে বোনাস কনফিগার করা হয়।
  • Suggestion API ব্যবহার করে সাজেস্ট করা নেটওয়ার্কের চেয়ে সেভ করা নেটওয়ার্কের স্কোর বেশি হয়। config_wifiFrameworkSavedNetworkBonus ওভারলে ব্যবহার করে বোনাস কনফিগার করা হয়।
  • অবিশ্বস্ত নেটওয়ার্ক (যা সাজেশন API-এর অংশ হিসেবে অনুরোধ করা যেতে পারে) অন্য যেকোনও নেটওয়ার্কের চেয়ে কম স্কোর পায়।
  • আগে শনাক্ত করা হয়েছে যে কোনও নেটওয়ার্কে ইন্টারনেট নেই, সেটির স্কোর ০ হয় যদি ডিভাইসটি ইন্টারনেট অ্যাক্সেস আছে এমন অন্য নেটওয়ার্কের সাথে কানেক্ট করা থাকে।

সেভ করা বনাম সাজেশন এবং আনমিটারেড বনাম মিটারেড (অর্থাৎ, ডিফল্ট ওভারলে ভ্যালু) সংক্রান্ত ডিফল্ট বোনাস সেভ করা, সাজেস্ট করা, মিটারেড ও আনমিটারেডের জন্য কঠোর অগ্রাধিকারের ক্রম তৈরি করে:

  1. সেভ করা মিটারিং করা নয় এমন নেটওয়ার্ক
  2. সাজেস্ট করা মিটারিং করা নয় এমন নেটওয়ার্ক
  3. সেভ করা মিটার্ড নেটওয়ার্ক
  4. সাজেস্ট করা মিটার করা নেটওয়ার্ক

এর অর্থ হল, সেভ করা মেটার্ড (পেমেন্ট লাগে) নেটওয়ার্কের আগে সবসময় সেভ করা আনমিটারেড (ফ্রি) নেটওয়ার্ক বেছে নেওয়া হয়। সম্প্রতি বেছে নেওয়া (ব্যবহারকারী বা অ্যাপের মাধ্যমে) স্কোর বোনাস সেই কঠোর অগ্রাধিকারকে ওভাররাইড করতে পারে।

ফ্রেমওয়ার্কে একাধিক ক্যান্ডিডেট স্কোরার ইনস্টল করা থাকতে পারে, তবে একবারে শুধু একটিই অ্যাক্টিভ থাকতে পারে। অন্যান্য স্কোরারকে মেট্রিক্সের জন্য ব্যবহার করা যেতে পারে (বিকল্প অ্যালগরিদম তদন্ত করতে)। Android 11-এ, ডিফল্ট স্কোরার হল ThroughputScorer।

SSID ও BSSID ব্লক করা

ফ্রেমওয়ার্ক হয়ত SSID বা BSSID ব্লক করতে পারে, এর অর্থ হল এটি সাময়িক বা স্থায়ীভাবে কানেকশনের জন্য সেগুলি বিবেচনা করবে না।

BSSID ব্লকিং

BSSID ব্লকিং দুটি ব্যর্থতা কাউন্টার, একটি একটানা ব্যর্থতা কাউন্টার এবং একটি স্ট্রিক কাউন্টার রেখে কাজ করে, যা নির্দিষ্ট ব্যর্থতার ধরন অনুযায়ী হয় (ব্যর্থতার ধরনের তালিকা পরে দেখুন)। কোনও সমস্যা হলে:

  • সংশ্লিষ্ট ব্যর্থতার ধরনের জন্য কাউন্টার বাড়ানো হয়েছে।
  • সেই ব্যর্থতার ধরনের জন্য ব্যর্থতার থ্রেশহোল্ডে পৌঁছে গেলে:
    • BSSID ব্লক করা হয়েছে।
    • ব্যর্থতার জন্য স্ট্রিক কাউন্টার বাড়ানো হয়েছে।

BSSID ব্লক করার সময়সীমা কনফিগার করা বেস ভ্যালু থেকে শুরু হয়। এই বেস ভ্যালু RSSI-এর উপর নির্ভর করে config_wifiBssidBlocklistMonitorBaseBlockDurationMs বা config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs ওভারলে দ্বারা নির্দিষ্ট করা হয়। তারপরে, config_wifiBssidBlocklistMonitorFailureStreakCap ওভারলেতে নির্দিষ্ট করা কনফিগার করা যায় এমন সর্বোচ্চ সীমা পর্যন্ত সময়সীমা এক্সপোনেনশিয়ালি বাড়তে থাকে। একই BSSID-তে ক্রমাগত ব্যর্থতা ঘটলে সময়কাল বৃদ্ধি পায়। সময়সীমা হল বেস সময়সীমা যা ব্যর্থতার স্ট্রিকের কারণে এক্সপোনেনশিয়ালি বৃদ্ধি পায়; যেমন, ২-এর ব্যর্থতার স্ট্রিকের অর্থ হল বেস ব্লক সময়সীমার ৪ গুণ।

BSSID ব্লক করার থ্রেশহোল্ড ব্যর্থতার কারণের উপর নির্ভর করে এবং প্রতিটি ওভারলে ব্যবহার করে কাস্টমাইজ করা যায়:

  • MBO/OCE নতুন STA ম্যানেজ করা যাচ্ছে না কোড ব্যবহার করে AP অ্যাসোসিয়েশন বাতিল করে: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • এই নেটওয়ার্কের মাধ্যমে ইন্টারনেট যাচাই করা যায়নি: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • ভুল পাসওয়ার্ড যাচাইকরণ ব্যর্থতার কোড: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • EAP নেটওয়ার্কের জন্য EAP ব্যর্থতা যাচাইকরণ ব্যর্থতা কোড: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • অ্যাসোসিয়েশন বাতিল করা, অন্যান্য সাধারণ অ্যাসোসিয়েশন বাতিল করা: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • অ্যাসোসিয়েশন টাইম-আউট: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • যাচাইকরণ সংক্রান্ত সমস্যা, অন্যান্য সাধারণ যাচাইকরণ সংক্রান্ত সমস্যা: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • DHCP কাজ না করা, DHCP প্রোভিশন করা যায়নি: config_wifiBssidBlocklistMonitorDhcpFailureThreshold।
  • অস্বাভাবিক ডিসকানেক্ট, কানেক্ট করার পরে খুব অল্প সময়ের মধ্যে ডিভাইস নেটওয়ার্ক থেকে ডিসকানেক্ট হয়ে গেছে: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs-এর সাহায্যে টাইম উইন্ডো কনফিগার করা যায়।

BSSID ব্লকলিস্ট মুছে দেওয়ার শর্তাবলী

নিম্নলিখিত কারণে ব্লক তালিকা থেকে 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
  • DHCP প্রভিশনিং সফল হলে, নিম্নলিখিত ত্রুটি কোডের জন্য কাউন্টার রিসেট করা হয়:

    • REASON_DHCP_FAILURE

SSID ব্লক করা

SSID ব্লকিং, BSSID ব্লকিংয়ের মতোই কাজ করে। প্রতিটি নেটওয়ার্কে প্রতি ধরনের কানেকশন ব্যর্থতার জন্য একটি ব্যর্থতার কাউন্টার থাকে, যা সেই ধরনের কানেকশন ব্যর্থ হলে বৃদ্ধি পায়। কোনও নির্দিষ্ট ধরনের ব্যর্থতার সংখ্যা থ্রেশহোল্ডের বেশি হলে, কনফিগারেশনের উপর ভিত্তি করে SSID স্থায়ী বা সাময়িকভাবে ব্লক করা হয়। প্রতিটি ব্যর্থতার ধরনের জন্য কনফিগারেশন WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS-এ কোড করা আছে এবং নিচের সারণীতে এর সারসংক্ষেপ দেওয়া হল।

* সাময়িকভাবে বন্ধ করা নেটওয়ার্কের ক্ষেত্রে, বন্ধ থাকার সময়সীমা নেটওয়ার্কে পরপর কানেকশন ফেল হওয়ার সংখ্যার উপর ভিত্তি করে ডায়নামিক পদ্ধতিতে পরিবর্তিত হয়। কোনও নেটওয়ার্ক পরপর পাঁচবার কানেক্ট করতে না পারলে, পরবর্তী প্রতিবার কানেক্ট করতে না পারলে বন্ধ থাকার সময়সীমা আগের সময়সীমার দ্বিগুণ হবে। যেমন, কোনও নেটওয়ার্ক পরপর ৫ বার কানেক্ট করতে না পারলে ৫ মিনিটের জন্য বন্ধ করে দেওয়া হয়, ষষ্ঠবার কানেক্ট করতে না পারলে ১০ মিনিটের জন্য, সপ্তম বার কানেক্ট করতে না পারলে ২০ মিনিটের জন্য এবং এইভাবেই সর্বাধিক ১৮ ঘণ্টা পর্যন্ত বন্ধ করে দেওয়া হয়।

ব্যর্থতার কোড বর্ণনা থ্রেশহোল্ড বেস বন্ধ করার সময়সীমা* বন্ধ করার ধরন
DISABLED_DHCP_FAILURE DHCP প্রভিশন করা যায়নি 5 ৫ মিনিট অস্থায়ী
DISABLED_NO_INTERNET_TEMPORARY নেটওয়ার্ক যাচাইকরণ ব্যর্থ হয়েছে, কিন্তু ব্যবহারকারী জানিয়েছেন যে তিনি ভবিষ্যতে এই নেটওয়ার্কে কানেক্ট করে থাকতে চান 1 ১০ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_NO_CREDENTIALS নেটওয়ার্কে কানেক্ট করার জন্য সাপ্লিক্যান্টের কাছে ক্রেডেনশিয়াল নেই 1 N/A স্থায়ী
DISABLED_NO_INTERNET_PERMANENT নেটওয়ার্ক যাচাইকরণ ব্যর্থ হওয়ার জন্য ডিফল্ট 1 N/A স্থায়ী
DISABLED_BY_WIFI_MANAGER পুরনো হয়ে গেছে এবং ব্যবহার করা হয় না 1 N/A স্থায়ী
DISABLED_BY_WRONG_PASSWORD পাসওয়ার্ডটি ভুল এবং এই নেটওয়ার্কে কখনও সফলভাবে কানেক্ট করা হয়নি 1 N/A স্থায়ী
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION EAP কাজ না করা যেখানে সিম কার্ড সাবস্ক্রাইব করা নেই 1 N/A স্থায়ী
DISABLED_ASSOCIATION_REJECTION অ্যাসোসিয়েশন বাতিল করা যায়নি 5 ৫ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_FAILURE অন্যান্য যাচাইকরণ সংক্রান্ত সমস্যা (যেমন, ভুল পাসওয়ার্ড বা EAP সংক্রান্ত সমস্যা নয়) 5 ৫ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR প্রোভাইডার-নির্দিষ্ট (ব্যক্তিগত) EAP কাজ করছে না। 1 N/A স্থায়ী
DISABLED_NETWORK_NOT_FOUND প্রার্থী স্ক্যান ফলাফলে এমন কোনও নেটওয়ার্ক খুঁজে পায়নি যা কানেক্ট করার জন্য ফ্রেমওয়ার্কের অনুরোধ করা নেটওয়ার্কের (নেটওয়ার্ক ক্ষমতা সহ) সাথে ম্যাচ করে। 2 ৫ মিনিট অস্থায়ী
DISABLED_CONSECUTIVE_FAILURES নেটওয়ার্ক পরপর পাঁচ বা তার বেশি বার কানেক্ট করতে না পারলে। এইসব ব্যর্থতার ক্ষেত্রে ব্যর্থতার ধরন এই টেবিলে তালিকাভুক্ত করা আছে, তবে এর মধ্যেই সীমাবদ্ধ নয়।
5 ৫ মিনিট অস্থায়ী

সাময়িকভাবে বন্ধ করা নেটওয়ার্ক আবার চালু করা হয় যখন:

  • বন্ধ করে রাখার সময়সীমা পেরিয়ে গেছে।
  • ব্যবহারকারী কানেক্ট করার জন্য ম্যানুয়ালি নেটওয়ার্ক বেছে নেন।
  • ব্যবহারকারী ওয়াই-ফাই টগল করেন।
  • সিস্টেম রিবুট করা হয়েছে।
  • খুব কম RSSI-তে নেটওয়ার্ক বন্ধ হয়ে গিয়েছিল, কিন্তু পরে নেটওয়ার্কটি মাঝারি বা বেশি RSSI-তে আবার ডিটেক্ট করা হয়েছে।

স্থায়ীভাবে বন্ধ করা নেটওয়ার্ক আবার চালু করা হয় যখন:

  • ব্যবহারকারী কানেক্ট করার জন্য ম্যানুয়ালি নেটওয়ার্ক বেছে নেন।

কোনও নেটওয়ার্কের জন্য ব্যর্থতার কাউন্টার রিসেট করা হয় যখন:

  • নেটওয়ার্ক সরিয়ে দেওয়া হয়েছে।
  • ডিভাইসটি নেটওয়ার্কের সাথে সঠিকভাবে কানেক্ট হয়েছে।
  • বন্ধ থাকার সময়সীমা শেষ হয়ে যাওয়ার পরে নেটওয়ার্ক আবার চালু হয়ে গেছে।
  • ব্যবহারকারী কানেক্ট করার জন্য ম্যানুয়ালি নেটওয়ার্ক বেছে নেন।
  • সিস্টেম রিবুট করা হয়েছে।

স্কোর কার্ড

Android 10-এ চালু করা স্কোর কার্ড, BSSID সম্পর্কে ডিভাইসে পরিসংখ্যান রেকর্ড করে। স্কোর কার্ড IpMemoryStore পরিষেবা ব্যবহার করে সেভ করা হয়।

Android 11 নেটওয়ার্ক বেছে নেওয়ার ক্ষেত্রে স্কোর কার্ড ব্যবহার করা হয় না।

ব্যবহারকারীর কানেক্ট করার পছন্দ

Android-এ ব্যবহারকারীর কানেক্ট করার পছন্দ সংক্রান্ত অ্যালগরিদম আছে যা ব্যবহারকারী স্পষ্টভাবে কানেক্ট করেছেন এমন ওয়াই-ফাই নেটওয়ার্ককে বেছে নেওয়ার প্রসেসকে অগ্রাধিকার দেয়, যেমন, হোম নেটওয়ার্ক। ব্যবহারকারীরা পাবলিক নেটওয়ার্কের চেয়ে এই ধরনের নেটওয়ার্ক পছন্দ করতে পারেন, এমনকি পারফর্ম্যান্স পাবলিক নেটওয়ার্কের চেয়ে কম হলেও, কারণ তারা অতিরিক্ত পরিষেবা প্রদান করে, যেমন হোম ডিভাইস কন্ট্রোল করার ক্ষমতা।

ব্যবহারকারী কোনও নেটওয়ার্ক বেছে নেওয়ার সময়, দৃশ্যমান সব ওয়াই-ফাই কনফিগারেশন ও সেগুলির সিগন্যাল স্ট্রেন্থ চিহ্নিত করে, নেটওয়ার্কের জন্য ব্যবহারকারীর পছন্দ ক্যাপচার করা হয়। অটোমেটিক বেছে নেওয়ার প্রসেস চলাকালীন চিহ্নিত করা ওয়াই-ফাই কনফিগারেশনের মধ্যে কোনও একটি বেছে নেওয়া হলে এবং ব্যবহারকারীর বেছে নেওয়া নেটওয়ার্ক উপলভ্য থাকলে, নিম্নলিখিত শর্ত পূরণ হলে ব্যবহারকারীর কানেক্ট করার পছন্দ সংক্রান্ত অ্যালগরিদম ব্যবহারকারীর বেছে নেওয়া নেটওয়ার্কের মাধ্যমে বেছে নেওয়া নেটওয়ার্ককে ওভাররাইড করে:

  • ব্যবহারকারীর বেছে নেওয়া নেটওয়ার্কে শেষবার ব্যবহার করার সময় ইন্টারনেট অ্যাক্সেস ছিল।
  • ব্যবহারকারীর কানেক্ট করার বিকল্পে সিগন্যাল ক্ষমতা এমন যে সেটি মূলত বেছে নেওয়ার সময় যে ত্রুটি মার্জিন ছিল তার থেকে খারাপ নয়। config_wifiEstimateRssiErrorMarginDbওভারলে ব্যবহার করে এই ত্রুটির মার্জিন কনফিগার করা যেতে পারে।

রিবুট করার পরেও ব্যবহারকারীর কানেক্ট করা পছন্দের নেটওয়ার্ক থেকে যায়। ব্যবহারকারীর কানেক্ট করার পছন্দ সেভ করা নেটওয়ার্ক, পাসপয়েন্ট নেটওয়ার্ক ও সাজেস্ট করা নেটওয়ার্কের ক্ষেত্রে কাজ করে।

একসাথে দুটি স্টেশন

কোনও ডিভাইস একই সাথে দুটি ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করার সুবিধা থাকলে, এই বিভাগে ওয়াই-ফাই নেটওয়ার্ক বেছে নেওয়ার প্রক্রিয়া বর্ণনা করা হয়েছে।

মেক-বিফোর-ব্রেক

মেক-বিফোর-ব্রেক ফাংশন চালু থাকলে, ডিভাইসটি পুরনো নেটওয়ার্ক থেকে ডিসকানেক্ট করার আগে নতুন নেটওয়ার্কের সাথে কানেক্ট করার চেষ্টা করে। মেক-বিফোর-ব্রেক ফ্লো, ব্রেক-বিফোর-মেক নেটওয়ার্ক সুইচিংয়ের (নতুন নেটওয়ার্কে কানেক্ট করার আগে পুরনো নেটওয়ার্ক থেকে ডিভাইস ডিসকানেক্ট করার সময়) মতো একই নেটওয়ার্ক সিলেকশন অ্যালগরিদম ব্যবহার করে। নেটওয়ার্ক বেছে নেওয়ার অ্যালগরিদম যদি এমন কোনও নেটওয়ার্ক বেছে নেয় যা মেক-বিফোর-ব্রেক ব্যবহার করে পরিবর্তন করা যায় না, তাহলে ডিভাইস অটোমেটিক ব্রেক-বিফোর-মেক-এ ফিরে যায়।

একই সাথে সীমিত ও ইন্টারনেট কানেকশন

একসাথে সীমাবদ্ধ ও ইন্টারনেট কানেকশন ফাংশন চালু করা থাকলে, ডিভাইসটি একটি সেকেন্ডারি সীমাবদ্ধ ওয়াই-ফাই নেটওয়ার্কের সাথে কানেক্ট করতে পারে যা শুধুমাত্র ডিভাইস প্রস্তুতকারকের কনফিগার করা বেছে নেওয়া অ্যাপের জন্য উপলভ্য। ডিভাইস প্রস্তুতকারকদের জন্য এটি কনফিগার করার নির্দেশাবলী একসাথে সীমাবদ্ধ ও ইন্টারনেট কানেকশন লিঙ্কে দেওয়া আছে।

নেটওয়ার্ক বেছে নেওয়ার অ্যালগরিদম যখন OEM-এর পেড বা ব্যক্তিগত সাজেশন অনুযায়ী স্ক্যান ফলাফল শনাক্ত করে, তখন এটি অটোমেটিক দ্বিতীয় নেটওয়ার্ক হিসেবে কানেক্ট করে। প্রাইমারি ওয়াই-ফাই নেটওয়ার্কের (যা নিয়মিত অ্যাপে ইন্টারনেট কানেকশন প্রদান করে) জন্য নেটওয়ার্ক বেছে নেওয়ার প্রক্রিয়া সাধারণত সমান্তরালভাবে ঘটে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

  1. খোলা নেটওয়ার্কের চেয়ে সুরক্ষিত নেটওয়ার্ককে কি সবসময় অগ্রাধিকার দেওয়া হয়?

    না। সেভ করা বনাম সাজেস্ট করা এবং মিটার করা বনাম আনমিটার করা হল প্রাথমিক বিভাগ যার মধ্যে নেটওয়ার্ক মূল্যায়ন করা হয়। প্রতিটি বিভাগের মধ্যে, ওপেন নেটওয়ার্কের তুলনায় সুরক্ষিত নেটওয়ার্ককে কিছুটা অগ্রাধিকার দেওয়া হয়, তবে কানেকশনের কোয়ালিটিকে অনেক বেশি গুরুত্ব দেওয়া হয়।

    এর কারণ হল, এন্ড-টু-এন্ড এনক্রিপশন (যেমন, TLS) ব্যবহার করে আসল ব্যবহারকারীর ডেটা সুরক্ষিত রাখা হয়। সুরক্ষিত নেটওয়ার্ক শুধুমাত্র যোগাযোগের প্রথম অংশ এনক্রিপ্ট করে এবং এমনকি তারপরেও, আগে শেয়ার করা কী সহ নেটওয়ার্কের জন্য, সেগুলি বেশি গোপনীয়তা প্রদান করে না।

  2. সাজেস্ট করা নেটওয়ার্কের চেয়ে সেভ করা নেটওয়ার্ককে কেন বেশি অগ্রাধিকার দেওয়া হয়?

    সাজেস্ট করা ফ্রি নেটওয়ার্কের চেয়ে সেভ করা ফ্রি (আনমিটারেড) নেটওয়ার্ককে বেশি অগ্রাধিকার দেওয়া হয় এবং সাজেস্ট করা মিটারেড নেটওয়ার্কের চেয়ে সেভ করা মিটারেড নেটওয়ার্ককে বেশি অগ্রাধিকার দেওয়া হয়।

    সাজেস্ট করা নেটওয়ার্কের চেয়ে সেভ করা নেটওয়ার্ককে বেশি অগ্রাধিকার দেওয়া হয় কারণ এইসব নেটওয়ার্ক ব্যবহারকারী ডিভাইসে স্পষ্টভাবে যোগ করেছেন। এর অর্থ হল, সম্ভব হলে এইসব নেটওয়ার্কে কানেক্ট করার অগ্রাধিকার দেওয়া হয়।

    মনে রাখবেন, ব্যবহারকারীরা সেভ করা আলাদা আলাদা নেটওয়ার্কের জন্য অটোমেটিক কানেকশন আচরণ বন্ধ করতে পারবেন; অর্থাৎ, তারা এটি উল্লেখ করতে পারবেন যে এই নেটওয়ার্কগুলি শুধুমাত্র ম্যানুয়ালি ব্যবহার করা হবে এবং ডিভাইস যেন এগুলিকে অটোমেটিক বিবেচনা না করে।

  3. আমি কি কঠোর অগ্রাধিকারের ক্রম পরিবর্তন করতে বা এটি সম্পূর্ণভাবে সরাতে পারি?

    আগের বিভাগে তালিকাভুক্ত বোনাস ওভারলে পরিবর্তন করে আপনি নেটওয়ার্ক বেছে নেওয়ার সিদ্ধান্ত পরিবর্তন করতে পারবেন। তবে, ডিফল্ট ভ্যালু পরিবর্তন করার পরামর্শ দেওয়া হয় না, কারণ একাধিক ব্যবহারের ক্ষেত্রে সাবধানে বিবেচনা করার পরে সেগুলি বেছে নেওয়া হয়েছে।