ওয়াই-ফাই হটস্পট (সফ্ট এপি)

অ্যান্ড্রয়েড ওয়াই-ফাই হটস্পট (সফ্ট এপি) এর জন্য একটি ওয়াই-ফাই হটস্পট এবং স্থানীয়-শুধুমাত্র ওয়াই-ফাই হটস্পটের মাধ্যমে টিথারিং সহ সমর্থন প্রদান করে।

নরম AP বৈশিষ্ট্য নিম্নলিখিত কনফিগারেশনের জন্য অনুমতি দেয়:

  • SSID এবং BSSID
  • নিরাপত্তা প্রকার (WPA3 সহ)
  • লুকানো SSID
  • অপারেটিং ব্যান্ড এবং চ্যানেল (এসিএস সহ)
  • অনুমোদিত ক্লায়েন্টের সর্বাধিক সংখ্যা
  • অটোশাটডাউন টাইমআউট মান
  • অ্যালোলিস্ট এবং ব্লকলিস্ট যুক্ত ডিভাইসের ব্যবহারকারীর নিয়ন্ত্রণের অনুমতি দিতে
  • AP BSSID-এর জন্য MAC র্যান্ডমাইজেশনের স্তর
  • 802.11ax এবং 802.11be

ডিভাইসের ক্ষমতা এই নিয়ন্ত্রণগুলির প্রাপ্যতা নির্ধারণ করে। অ্যান্ড্রয়েড 11 এই ক্ষমতাগুলি পেতে APIগুলি প্রবর্তন করে। ডিভাইস নির্মাতারা ওভারলে ব্যবহার করে বেস ডিভাইস ক্ষমতা নির্দিষ্ট করতে পারেন।

মনে রাখবেন যে কিছু APIগুলি সিস্টেম API এবং অনুমতির মাধ্যমে সীমাবদ্ধ যাতে শুধুমাত্র সিস্টেমের সেটিংস অ্যাপই সেগুলি অ্যাক্সেস করতে পারে৷

হটস্পট এপিআই সহ অ্যাপস ডেভেলপ করা

একটি টিথারড ওয়াই-ফাই হটস্পটের একটি ডিফল্ট বাস্তবায়ন AOSP সেটিংস অ্যাপ দ্বারা সরবরাহ করা হয়, তবে এটি সফ্ট এপি কনফিগারেশনের জন্য সমস্ত API ব্যবহার করে না।

একটি হটস্পট বা শুধুমাত্র স্থানীয় হটস্পটের মাধ্যমে টিথারিং সমর্থন করতে, অ্যাপটিকে অবশ্যই নিম্নলিখিত ফাংশনগুলি সম্পাদন করতে হবে:

  1. একটি টিথারড হটস্পটের জন্য WifiManager#registerSoftApCallback বা স্থানীয়-শুধু হটস্পটের জন্য WifiManager#registerLocalOnlyHotspotSoftApCallback ব্যবহার করে ডিভাইসের ক্ষমতাগুলি পেতে একটি কলব্যাক নিবন্ধন করুন৷

    SoftApCallback কলব্যাক নিম্নলিখিত পদ্ধতি প্রদান করে:

    • SoftApCallback#onCapabilityChanged : সমর্থিত ক্লায়েন্টের সর্বাধিক সংখ্যা এবং SAE বা ACS সমর্থিত কিনা সহ ডিভাইসের ক্ষমতা সম্পর্কে তথ্য প্রদান করে।
    • SoftApCallback#onInfoChanged : ব্যান্ড এবং ফ্রিকোয়েন্সি তথ্য সহ চলমান সফট এপি (শুধুমাত্র একবার বৈধ) সম্পর্কে তথ্য প্রদান করে।
    • SoftApCallback#onConnectedClientsChanged : সংযুক্ত ক্লায়েন্টদের একটি তালিকা প্রদান করে। প্রতিটি ক্লায়েন্টের জন্য, আপনি MAC ঠিকানা পেতে পারেন। আইপি তথ্য পেতে, TetheringEventCallback#onClientsChanged কলব্যাক ব্যবহার করুন।
    • SoftApCallback#onStateChanged : সফ্ট এপি সক্রিয় এবং নিষ্ক্রিয় হওয়ার সাথে সাথে তার অবস্থার আপডেট প্রদান করে।
    • SoftApCallback#onBlockedClientConnecting : ব্লক করার জন্য নিম্নলিখিত কারণগুলির মধ্যে একটি সহ ব্লক করা ক্লায়েন্টের তথ্য প্রদান করে: ডিভাইসটি সর্বাধিক সংখ্যক ক্লায়েন্টে পৌঁছেছে যা এটি সমর্থন করতে পারে বা ক্লায়েন্ট সংযোগ করার জন্য স্পষ্টভাবে অনুমোদিত নয়।

একটি টিথারড হটস্পটের জন্য:

  1. WifiManager#setSoftApConfiguration পদ্ধতিতে কল করে এবং একটি SoftApConfiguration উদাহরণ প্রদান করে টিথারিংয়ের জন্য সফ্ট এপি কনফিগারেশন কনফিগার করুন। SoftApConfiguration.Builder ক্লাস ব্যবহার করে SoftApConfiguration তৈরি করুন।
  2. TetheringManager#startTethering এ টিথারিং পদ্ধতিতে কল করে টিথারিং শুরু করুন।

শুধুমাত্র স্থানীয় হটস্পটের জন্য:

  1. WifiManager#startLocalOnlyHotspot পদ্ধতিতে কল করে একটি নির্দিষ্ট নরম AP কনফিগারেশনের সাথে শুধুমাত্র-স্থানীয় হটস্পট শুরু করুন।

অনুমোদন এবং ব্লক তালিকা বাস্তবায়ন

একটি সাধারণ ক্যারিয়ারের প্রয়োজনীয়তা হল ব্যবহারকারীকে সেই ডিভাইসগুলির নিয়ন্ত্রণ প্রদান করা যা সফ্ট AP-এর সাথে সংযুক্ত করার জন্য অনুমোদিত৷ এটি করার জন্য বেশ কয়েকটি প্রক্রিয়া রয়েছে:

  • SoftApConfiguration.Builder#setMaxNumberOfClients ব্যবহার করে সফ্ট AP-এর সাথে সংযুক্ত হতে পারে এমন ডিভাইসের সর্বাধিক সংখ্যা সীমিত করুন। ডিভাইস দ্বারা সমর্থিত ক্লায়েন্টের সর্বাধিক সংখ্যার চেয়ে কম এমন একটি সংখ্যা নির্দিষ্ট করা নিশ্চিত করুন৷ আপনি SoftApCapability#getMaxSupportedClients থেকে সর্বোচ্চ নম্বর পেতে পারেন।
  • অনুমতি এবং ব্লক তালিকা ব্যবহার করে গতিশীল নিয়ন্ত্রণ প্রদান করুন:

    • একটি সফ্ট AP-এর ডিফল্ট কনফিগারেশন সমস্ত ডিভাইসকে সফ্ট AP-এর সাথে সংযুক্ত করার অনুমতি দেয় ব্যতীত যে ডিভাইসগুলির MAC ঠিকানাগুলি SoftApConfiguration.Builder#setBlockedClientList এ যোগ করা হয়েছে।
    • যদি Soft AP SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) দিয়ে কনফিগার করা হয়, তাহলে অনুমতি তালিকা ব্যবহার করা হয়।

      • যে সমস্ত ডিভাইসের MAC ঠিকানাগুলি SoftApConfiguration.Builder#setBlockedClientList এ রয়েছে সেগুলি অ্যাসোসিয়েশন থেকে ব্লক করা হয়েছে৷
      • যে সমস্ত ডিভাইসের MAC ঠিকানাগুলি SoftApConfiguration.Builder#setAllowedClientList এ রয়েছে সেগুলি অনুমোদিত অ্যাসোসিয়েশন।
      • অন্যান্য সমস্ত ডিভাইস (অর্থাৎ, যে ডিভাইসগুলির MAC ঠিকানাগুলি অনুমতি বা ব্লক তালিকায় নেই) অ্যাসোসিয়েশন থেকে ব্লক করা হয়েছে কিন্তু SoftApCallback#onBlockedClientConnecting বলা হয়, যা নিয়ন্ত্রণকারী অ্যাপকে (অর্থাৎ সেটিংস অ্যাপ) একটি পদক্ষেপ নেওয়ার অনুমতি দেয় উদাহরণস্বরূপ, ব্যবহারকারীকে নিশ্চিতকরণের জন্য জিজ্ঞাসা করা এবং তারপর ব্যবহারকারীর আচরণের উপর নির্ভর করে অনুমতি তালিকা বা ব্লক তালিকায় ডিভাইসটিকে যোগ করা।

    মনে রাখবেন যে ডিভাইসগুলি শুধুমাত্র অনুমোদিত তালিকা কার্যকারিতা ব্যবহার করতে পারে যদি এটি ডিভাইসে সমর্থিত হয়। আপনি SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) ব্যবহার করে ডিভাইস সমর্থন যাচাই করতে পারেন।

বাস্তবায়ন

হটস্পটের মাধ্যমে টিথারিং সমর্থন করতে বা শুধুমাত্র স্থানীয় হটস্পট সমর্থন করতে, ডিভাইস নির্মাতাদের অবশ্যই সেটিংস অ্যাপ, ফ্রেমওয়ার্ক এবং HAL/ফার্মওয়্যার সমর্থন প্রদান করতে হবে:

  • সেটিংস অ্যাপ: AOSP সেটিংস অ্যাপটি SSID এবং নিরাপত্তা শংসাপত্র সহ একটি টিথারিং হটস্পট কনফিগার করার জন্য একটি বেসলাইন প্রদান করে। হটস্পট API-এর সাথে অ্যাপ ডেভেলপিং- এ বর্ণিত অতিরিক্ত ক্ষমতা প্রদানের জন্য এই কোডটি ব্যবহার করা যেতে পারে বা পরিবর্তন করা যেতে পারে।

  • ফ্রেমওয়ার্ক: AOSP ফ্রেমওয়ার্ক কোড হটস্পট API সহ অ্যাপ ডেভেলপিং- এ বর্ণিত সমস্ত কার্যকারিতা সমর্থন করে।

  • হটস্পটের জন্য HAL/ফার্মওয়্যার: হয় HIDL IHostapd.hal সংস্করণ 1.2 বা উচ্চতর, অথবা AIDL IHostapd.aidl

কাস্টমাইজেশন

বাস্তবায়ন কাস্টমাইজ করতে, ডিভাইস নির্মাতাদের নিম্নলিখিত ওভারলে এবং ক্যারিয়ার কনফিগারেশনগুলি কনফিগার করা উচিত, যা packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml এ নথিভুক্ত করা হয়েছে:

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : ডিফল্ট শাটডাউন টাইমআউট ব্যবধান। SoftApConfiguration#setAutoShutdownEnabled সক্রিয় থাকলেই কেবল বৈধ। SoftApConfiguration#setShutdownTimeoutMillis ব্যবহার করে ওভাররাইড করা যেতে পারে।
  • config_wifiHardwareSoftapMaxClientCount : সমর্থিত ক্লায়েন্টের সর্বাধিক সংখ্যার জন্য হার্ডওয়্যার সীমাবদ্ধতা। ডিভাইসটি সমর্থন করে এমন সর্বাধিক সংখ্যক ক্লায়েন্ট হল হার্ডওয়্যার এবং ক্যারিয়ারের সীমাবদ্ধতার সর্বনিম্ন ( CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT দ্বারা নির্দিষ্ট)৷ SoftApCapabilities#getMaxSupportedClients সহ অ্যাপটিতে চূড়ান্ত ফলাফল প্রদান করা হয়।
  • config_wifiSofapClientForceDisconnectSupported : ডিভাইসটিতে ক্লায়েন্টকে জোর করে সংযোগ বিচ্ছিন্ন করার ক্ষমতা আছে কিনা। মঞ্জুরি এবং ব্লক তালিকা সক্ষম করতে প্রয়োজনীয়। SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) এর মাধ্যমে নিয়ন্ত্রণকারী অ্যাপে (সেটিংস অ্যাপ) যোগাযোগ করা হয়েছে।
  • (১৩ থেকে পাওয়া যায়) config_wifiSoftapPassphraseAsciiEncodableCheck : নরম AP পাসফ্রেজ ASCII এনকোডযোগ্য হতে হবে কিনা।
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported : একটি নতুন ডিভাইস সমর্থিত হলে ক্লাউড কনফিগারেশন পুনরুদ্ধারের সময় স্বয়ংক্রিয়ভাবে ব্যান্ড সেটিং কনফিগারেশনকে ডুয়াল ব্যান্ডে আপগ্রেড করা হবে কি না।
  • (13 থেকে উপলব্ধ) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled : ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে সহাবস্থান পরিচালনা এড়ানোর জন্য ব্যান্ড কনফিগারেশনে নিম্ন ব্যান্ড যুক্ত করে কিনা।
  • config_wifiSoftApDynamicCountryCodeUpdateSupported : AP মোডে ডায়নামিক কান্ট্রি কোড আপডেট ডিভাইসে সমর্থিত কিনা
  • চ্যানেল সমর্থন: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , config_wifiSoftap6gChannelList এবং config_wifiSoftap60gChannelList
  • একটি নতুন ডিভাইসে হটস্পট কনফিগারেশন পুনরুদ্ধার করার সময় সংশ্লিষ্ট এন্ট্রিগুলি ডিফল্টে রিসেট করা হয়েছে কিনা তা উল্লেখ করে সমর্থন পুনরুদ্ধার করুন: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig । মনে রাখবেন যে এইগুলি ডিফল্টরূপে true হিসাবে সেট করা হয়েছে, যার অর্থ হল মানগুলি পুনরায় সেট করা হয়েছে। নতুন ডিভাইস কনফিগারেশন সমর্থন না করলে এটি গুরুত্বপূর্ণ।
  • হার্ডওয়্যার ক্ষমতা:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (13 থেকে উপলব্ধ) config_wifiSoftapOweTransitionSupported
    • (13 থেকে উপলব্ধ) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (13 থেকে উপলব্ধ) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

বৈধতা

অ্যান্ড্রয়েড হটস্পট বৈশিষ্ট্যটি যাচাই করতে ইউনিট টেস্ট, ইন্টিগ্রেশন টেস্ট (অ্যান্ড্রয়েড কানেক্টিভিটি টেস্ট স্যুট, বা ACTS) এবং সামঞ্জস্যতা টেস্ট স্যুট (CTS) পরীক্ষার একটি সেট সরবরাহ করে। হটস্পট বৈশিষ্ট্যটি ভেন্ডর টেস্ট স্যুট (ভিটিএস) ব্যবহার করেও পরীক্ষা করা যেতে পারে।

ইউনিট পরীক্ষা

নিম্নলিখিত পরীক্ষাগুলি ব্যবহার করে হটস্পট প্যাকেজ যাচাই করুন।

  • পরিষেবা পরীক্ষা:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • ম্যানেজার পরীক্ষা:

    atest packages/modules/Wifi/framework/tests/
    

ইন্টিগ্রেশন টেস্ট (ACTS)

ACTS হটস্পট টেস্ট স্যুট, tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py এ অবস্থিত, হটস্পট বৈশিষ্ট্যের কার্যকরী পরীক্ষাগুলি প্রয়োগ করে৷

সামঞ্জস্য পরীক্ষা স্যুট (সিটিএস) পরীক্ষা

হটস্পট বৈশিষ্ট্য যাচাই করতে CTS পরীক্ষা ব্যবহার করুন। বৈশিষ্ট্যটি সক্ষম হলে CTS সনাক্ত করে এবং স্বয়ংক্রিয়ভাবে সংশ্লিষ্ট পরীক্ষাগুলি অন্তর্ভুক্ত করে।

CTS পরীক্ষা ট্রিগার করতে, চালান:

atest android.net.wifi.cts.WifiManagerTest

ভেন্ডর টেস্ট স্যুট (VTS)

যদি HIDL ইন্টারফেস প্রয়োগ করা হয়, চালান:

atest VtsHalWifiHostapdV1_2Target

যদি এআইডিএল ইন্টারফেস প্রয়োগ করা হয়, চালান:

atest VtsHalHostapdTargetTest