Android از نقطه اتصال Wi-Fi (نقطه دسترسی نرمافزاری) ازجمله اتصال ازطریق نقطه اتصال Wi-Fi و نقاط اتصال Wi-Fi فقط محلی پشتیبانی میکند.
ویژگی نقطه دسترسی نرمافزاری امکان پیکربندی موارد زیر را فراهم میکند:
- SSID و BSSID
- نوع امنیت (ازجمله WPA3)
- SSID پنهان
- باند و کانال عملیاتی (ازجمله ACS)
- حداکثر تعداد مجاز کارخواهان
- مقدار مهلت خاموش شدن خودکار
- فهرست مجاز و فهرست مسدود برای اجازه دادن به کاربر برای کنترل دستگاههای مرتبط
- سطح تصادفیسازی MAC برای AP BSSID
- 802.11ax و 802.11be
قابلیتهای دستگاه تعیین میکند که این کنترلها دردسترس باشند یا نه. Android 11 میاناهای برنامهسازی کاربردیای را معرفی میکند که این قابلیتها را بهدست میآورند. سازندگان دستگاه میتوانند قابلیتهای پایه دستگاه را نیز بااستفاده از رونهادها مشخص کنند.
توسعه برنامهها با میاناهای برنامهسازی کاربردی نقطه اتصال
پیادهسازی پیشفرض نقطه اتصال Wi-Fi بااستفاده از اینترنت همراه توسط برنامه «تنظیمات» «پروژه منبع باز Android» (AOSP) ارائه میشود، اما همه میاناهای برنامهسازی کاربردی را برای پیکربندی Soft AP اجرا نمیکند.
برای پشتیبانی از اشتراکگذاری اینترنت ازطریق نقطه اتصال یا نقطه اتصال فقط محلی، برنامه باید عملکردهای زیر را انجام دهد:
برای دریافت قابلیتهای دستگاه بااستفاده از
WifiManager#registerSoftApCallbackبرای نقطه اتصال اشتراکگذاریشده یاWifiManager#registerLocalOnlyHotspotSoftApCallbackبرای نقطه اتصال فقط محلی، تماس برگشتی ثبت کنید.فراخوان
SoftApCallbackروشهای زیر را ارائه میدهد:SoftApCallback#onCapabilityChanged: اطلاعاتی درباره قابلیتهای دستگاه ارائه میدهد، ازجمله حداکثر تعداد مشتریان پشتیبانیشده، و اینکه آیا SAE یا ACS پشتیبانی میشود یا نه.SoftApCallback#onInfoChanged: اطلاعاتی درباره Soft AP درحال اجرا (فقط یکبار پساز شروع معتبر است) ارائه میدهد، ازجمله اطلاعات باند و فرکانس.SoftApCallback#onConnectedClientsChanged: فهرستی از مشتریان متصلشده را ارائه میدهد. برای هر کارخواه، میتوانید نشانی MAC را دریافت کنید. برای دریافت اطلاعات IP، از فراخوانی برگشتیTetheringEventCallback#onClientsChangedاستفاده کنید.SoftApCallback#onStateChanged: بهروزرسانیهایی درباره وضعیت Soft AP هنگام فعال و غیرفعال شدن ارائه میدهد.SoftApCallback#onBlockedClientConnecting: اطلاعات کارخواه مسدودشده را با یکی از دلایل زیر برای مسدود شدن ارائه میدهد: دستگاه به حداکثر تعداد کارخواهی که میتواند پشتیبانی کند رسیده است یا کارخواه بهطور صریح برای اتصال مجاز نیست.SoftApCallback#onClientsDisconnected: فهرستی از مشتریان قطعشده ارائه میدهد. برای هر کارخواه، میتوانید دلیل قطع اتصال را دریافت کنید.
برای نقطه اتصال با اشتراکگذاری اینترنت:
- پیکربندی AP نرم برای اینترنتبخشی را با فراخوانی روش
WifiManager#setSoftApConfigurationو ارائه نمونهSoftApConfigurationپیکربندی کنید.SoftApConfigurationرا بااستفاده از کلاسSoftApConfiguration.Builderبسازید. - با فراخوانی روش اتصال در
TetheringManager#startTethering، اتصال را شروع کنید.
برای نقطه اتصال فقط محلی:
- نقطه اتصال فقط محلی را با پیکربندی AP نرمافزاری خاصی با فراخوانی روش
WifiManager#startLocalOnlyHotspotشروع کنید.
پیادهسازی فهرستهای مجاز و مسدودشده
یکی از الزامات معمول شرکت مخابراتی این است که کنترل دستگاههایی را که اجازه دارند به «نقطه دسترسی نرمافزاری» متصل شوند دراختیار کاربر قرار دهد. چندین سازوکار برای انجام این کار وجود دارد:
- محدود کردن حداکثر تعداد دستگاههایی که میتوانند بااستفاده از
SoftApConfiguration.Builder#setMaxNumberOfClientsبه نقطه دسترسی نرمافزاری متصل شوند. حتماً عددی را مشخص کنید که کمتر از حداکثر تعداد کارخواه پشتیبانیشده توسط دستگاه باشد. میتوانید حداکثر تعداد را ازSoftApCapability#getMaxSupportedClientsدریافت کنید. کنترل پویا را بااستفاده از فهرستهای مجاز و مسدودشده ارائه دهید:
- پیکربندی پیشفرض Soft AP به همه دستگاهها اجازه میدهد
به Soft AP مرتبط شوند، بهجز دستگاههایی که نشانی MAC آنها
به
SoftApConfiguration.Builder#setBlockedClientListاضافه شده است. - اگر Soft AP با
SoftApConfiguration.Builder#setClientControlByUserEnabled(true)پیکربندی شده باشد، از فهرست مجازها استفاده میشود.- همه دستگاههایی که نشانیهای MAC آنها در
SoftApConfiguration.Builder#setBlockedClientListاست از قراردادن مسدود میشوند. - همه دستگاههایی که نشانی MAC آنها در
SoftApConfiguration.Builder#setAllowedClientListاست مجاز به همبستگی هستند. - همه دستگاههای دیگر (یعنی دستگاههایی که نشانی MAC آنها
در فهرست مجاز یا مسدودشده نیست) از
ارتباط مسدود میشوند اما
SoftApCallback#onBlockedClientConnectingفراخوانده میشود، که به برنامه کنترلکننده (یعنی برنامه تنظیمات) اجازه میدهد اقدامی انجام دهد، برای مثال، از کاربر تأیید بخواهد و سپس دستگاه را بسته به رفتار کاربر به فهرست مجاز یا فهرست مسدودشده اضافه کند.
- همه دستگاههایی که نشانیهای MAC آنها در
توجه داشته باشید که دستگاهها فقط درصورتی میتوانند از عملکرد فهرست مجاز استفاده کنند که در دستگاه پشتیبانی شود. میتوانید پشتیبانی دستگاه را بااستفاده از
SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)تأیید کنید.- پیکربندی پیشفرض Soft AP به همه دستگاهها اجازه میدهد
به Soft AP مرتبط شوند، بهجز دستگاههایی که نشانی MAC آنها
به
پیادهسازی
برای پشتیبانی از اینترنتبخشی ازطریق نقطه اتصال یا پشتیبانی از نقطه اتصال فقط محلی، سازندگان دستگاه باید برنامه تنظیمات، چارچوب، و پشتیبانی HAL/سفتافزار را ارائه دهند:
برنامه «تنظیمات»: برنامه «تنظیمات» «پروژه منبع باز Android» (AOSP) خط مبنایی برای پیکربندی نقطه اتصال اینترنت با SSID و اعتبارنامههای امنیتی ارائه میدهد. این کد میتواند همانطور که هست استفاده شود یا برای ارائه قابلیتهای اضافی که در توسعه برنامهها با میاناهای برنامهسازی کاربردی نقطه اتصال توضیح داده شده است اصلاح شود.
چارچوب: کد چارچوب AOSP از همه عملکردهای توضیحدادهشده در توسعه برنامهها با «میاناهای برنامهسازی کاربردی نقطه اتصال» پشتیبانی میکند.
HAL/سفتافزار برای نقطه اتصال: HIDL
IHostapd.halنسخه ۱.۲ یا بالاتر، یا AIDLIHostapd.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)به برنامه کنترلکننده (برنامه «تنظیمات») منتقل میشود.- (از Android 13 دردسترس است)
config_wifiSoftapPassphraseAsciiEncodableCheck: آیا گذرعبارت نقطه دسترسی نرمافزاری باید با کدبندی ASCII باشد یا نه. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: ارتقا دادن یا ندادن خودکار پیکربندی تنظیم باند به باند دوگانه درطول بازیابی پیکربندی ابری وقتی دستگاه جدیدی پشتیبانی میشود.- (از Android 13 دردسترس است)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: آیا چارچوب بهطور خودکار باندهای پایینتر را به پیکربندی باند اضافه میکند تا از مدیریت همزیستی جلوگیری شود. config_wifiSoftApDynamicCountryCodeUpdateSupported: اینکه آیا بهروزرسانی پویای کد کشور در حالت «نقطه دسترسی» در دستگاه پشتیبانی میشود یا نه- پشتیبانی کانال:
config_wifiSoftap2gChannelList،config_wifiSoftap5gChannelList،config_wifiSoftap6gChannelList، وconfig_wifiSoftap60gChannelList. - پشتیبانی بازیابی مشخص میکند که آیا ورودیهای مربوطه هنگام بازیابی پیکربندی نقطه اتصال در دستگاه جدید به حالت پیشفرض بازنشانی میشوند یا نه:
config_wifiSoftapResetChannelConfig،config_wifiSoftapResetHiddenConfig،config_wifiSoftapResetUserControlConfig،config_wifiSoftapResetAutoShutdownTimerConfig،config_wifiSoftapResetMaxClientSettingConfig. توجه داشته باشید که این موارد بهطور پیشفرض رویtrueتنظیم شدهاند، یعنی مقادیر بازنشانی میشوند. اگر دستگاه جدید از پیکربندی پشتیبانی نکند، این موضوع بسیار مهم است. - قابلیتهای سختافزار:
config_wifi_softap_acs_supportedconfig_wifi_softap_sae_supported- (از Android 13 دردسترس است)
config_wifiSoftapOweTransitionSupported - (از Android 13 دردسترس است)
config_wifiSoftapOweSupported config_wifi_softap_ieee80211ac_supportedconfig_wifiSoftapIeee80211axSupported- (در Android 13 دردسترس است)
config_wifiSoftapIeee80211beSupported config_wifiSoftapMacAddressCustomizationSupportedconfig_wifiSoftapHeSuBeamformerSupportedconfig_wifiSoftapHeSuBeamformeeSupportedconfig_wifiSoftapHeMuBeamformerSupportedconfig_wifiSoftapHeTwtSupportedconfig_wifiSoftap24ghzSupportedconfig_wifiSoftap5ghzSupportedconfig_wifiSoftap6ghzSupportedconfig_wifiSoftap60ghzSupportedconfig_wifiSoftapAcsIncludeDfs
اعتبارسنجی
Android مجموعهای از آزمایشهای واحد و آزمایشهای «مجموعه آزمایش سازگاری» (CTS) برای اعتبارسنجی ویژگی نقطه اتصال ارائه میدهد. ویژگی نقطه اتصال را میتوان بااستفاده از Vendor Test Suite (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