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

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

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

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

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

হটস্পট API ব্যবহার করে অ্যাপ তৈরি করুন

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

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

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

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

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

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

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

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

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

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

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

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

    • একটি Soft AP-এর ডিফল্ট কনফিগারেশন সমস্ত ডিভাইসকে Soft AP-এর সাথে সংযুক্ত করার অনুমতি দেয়, শুধুমাত্র সেই ডিভাইসগুলি ছাড়া যাদের MAC ঠিকানা SoftApConfiguration.Builder#setBlockedClientList এ যোগ করা হয়েছে।
    • যদি Soft AP SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) দিয়ে কনফিগার করা থাকে, তাহলে allow list ব্যবহার করা হয়।
      • SoftApConfiguration.Builder#setBlockedClientList এ থাকা সমস্ত ডিভাইস অ্যাসোসিয়েশন থেকে ব্লক করা হয়েছে।
      • 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 : ASCII এনকোডেবল হওয়ার জন্য সফট AP পাসফ্রেজ প্রয়োজন কিনা।
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported : নতুন ডিভাইস সমর্থিত হলে ক্লাউড কনফিগারেশন পুনরুদ্ধারের সময় ব্যান্ড সেটিং কনফিগারেশন স্বয়ংক্রিয়ভাবে ডুয়াল ব্যান্ডে আপগ্রেড করা হবে কিনা।
  • (১৩ থেকে উপলব্ধ) 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
    • (১৩ থেকে উপলব্ধ) config_wifiSoftapOweTransitionSupported সমর্থিত
    • (১৩ থেকে পাওয়া যাচ্ছে) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (১৩ থেকে পাওয়া যাচ্ছে) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

বৈধতা

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

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

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

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

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

    atest packages/modules/Wifi/framework/tests/

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

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

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

atest android.net.wifi.cts.WifiManagerTest

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

যদি HIDL ইন্টারফেসটি বাস্তবায়িত হয়, তাহলে চালান:

atest VtsHalWifiHostapdV1_2Target

যদি AIDL ইন্টারফেসটি বাস্তবায়িত হয়, তাহলে চালান:

atest VtsHalHostapdTargetTest