Android از نقطه اتصال Wi-Fi (Soft AP) از جمله اتصال به اینترنت از طریق یک هات اسپات Wi-FI و نقاط اتصال Wi-Fi فقط محلی پشتیبانی می کند.
ویژگی Soft AP امکان پیکربندی موارد زیر را فراهم می کند:
- SSID و BSSID
- نوع امنیت (از جمله WPA3)
- SSID پنهان
- باند و کانال عامل (از جمله ACS)
- حداکثر تعداد مشتریان مجاز
- مقدار زمان خاموشی خودکار
- Allowlist و blocklist برای اجازه دادن به کاربر برای کنترل دستگاههای مرتبط
- سطح تصادفی سازی MAC برای AP BSSID
- 802.11ax و 802.11be
قابلیت های دستگاه تعیین کننده در دسترس بودن این کنترل ها است. اندروید 11 برای به دست آوردن این قابلیت ها API هایی را معرفی می کند. سازندگان دستگاه همچنین می توانند قابلیت های دستگاه پایه را با استفاده از پوشش ها مشخص کنند.
توجه داشته باشید که برخی از APIها APIهای سیستمی هستند و از طریق مجوزها محدود شده اند تا فقط برنامه تنظیمات سیستم بتواند به آنها دسترسی داشته باشد.
برنامه ها را با API های هات اسپات توسعه دهید
اجرای پیشفرض یک نقطه اتصال Wi-Fi توسط برنامه تنظیمات AOSP ارائه شده است، اما از همه APIها برای پیکربندی Soft AP استفاده نمیکند.
برای پشتیبانی از اتصال اینترنت از طریق یک هات اسپات یا یک هات اسپات فقط محلی، برنامه باید عملکردهای زیر را انجام دهد:
برای به دست آوردن قابلیتهای دستگاه با استفاده از
WifiManager#registerSoftApCallback
برای نقطه اتصال متصل یاWifiManager#registerLocalOnlyHotspotSoftApCallback
برای یک نقطه اتصال محلی فقط تماس بگیرید.پاسخ تماس
SoftApCallback
روش های زیر را ارائه می دهد:-
SoftApCallback#onCapabilityChanged
: اطلاعاتی درباره قابلیتهای دستگاه، از جمله حداکثر تعداد کلاینتهای پشتیبانیشده، و اینکه آیا SAE یا ACS پشتیبانی میشوند، ارائه میکند. -
SoftApCallback#onInfoChanged
: اطلاعاتی را در مورد Soft AP در حال اجرا (فقط پس از شروع معتبر)، از جمله اطلاعات باند و فرکانس ارائه می دهد. -
SoftApCallback#onConnectedClientsChanged
: فهرستی از مشتریان متصل را ارائه می دهد. برای هر مشتری، می توانید آدرس MAC را بدست آورید. برای به دست آوردن اطلاعات IP، ازTetheringEventCallback#onClientsChanged
callback استفاده کنید. -
SoftApCallback#onStateChanged
: بهروزرسانیهایی را در مورد وضعیت Soft AP با فعال و غیرفعال شدن آن ارائه میکند. -
SoftApCallback#onBlockedClientConnecting
: اطلاعات سرویس گیرنده مسدود شده را با یکی از دلایل زیر برای مسدود کردن ارائه می دهد: دستگاه به حداکثر تعداد کلاینت هایی رسیده است که می تواند پشتیبانی کند یا کلاینت صریحاً مجاز به اتصال نیست.
-
برای یک نقطه اتصال متصل:
- با فراخوانی روش
WifiManager#setSoftApConfiguration
و ارائه یک نمونهSoftApConfiguration
پیکربندی نرمافزار AP را برای اتصال به اینترنت به اینترنت پیکربندی کنید.SoftApConfiguration
با استفاده از کلاسSoftApConfiguration.Builder
بسازید. - با فراخوانی روش تترینگ در
TetheringManager#startTethering
اتصال به اینترنت را شروع کنید.
فقط برای کانون محلی:
- با فراخوانی روش
WifiManager#startLocalOnlyHotspot
، هات اسپات فقط محلی را با یک پیکربندی AP نرم خاص شروع کنید.
لیست های مجاز و مسدود را پیاده سازی کنید
یک نیاز معمولی حامل این است که کنترلهای دستگاههایی را در اختیار کاربر قرار دهد که مجاز به ارتباط با Soft AP هستند. چندین مکانیسم برای انجام این کار وجود دارد:
- حداکثر تعداد دستگاه هایی را که می توانند با
SoftApConfiguration.Builder#setMaxNumberOfClients
به Soft AP مرتبط شوند محدود کنید. حتماً عددی را مشخص کنید که کمتر از حداکثر تعداد کلاینتهای پشتیبانی شده توسط دستگاه باشد. می توانید حداکثر تعداد را از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/سیستمافزار را ارائه دهند:
برنامه تنظیمات: برنامه تنظیمات 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 )
با برنامه کنترل کننده (برنامه تنظیمات) ارتباط برقرار کرد. - (موجود از 13)
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
-
اعتبار سنجی
Android مجموعهای از تستهای واحد و تستهای Compatibility Test Suite (CTS) را برای اعتبارسنجی ویژگی نقطه اتصال ارائه میکند. ویژگی هات اسپات را می توان با استفاده از مجموعه تست فروشنده (VTS) نیز آزمایش کرد.
تست های واحد
بسته hotspot را با استفاده از تست های زیر تأیید کنید.
تست های خدمات:
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