אנדרואיד מספקת תמיכה עבור נקודה חמה של Wi-Fi (Soft AP) כולל חיבור דרך נקודה חמה של Wi-FI ונקודות Wi-Fi חמות מקומיות בלבד.
תכונת ה-AP הרכה מאפשרת הגדרת התצורה של הדברים הבאים:
- SSID ו- BSSID
- סוג אבטחה (כולל WPA3)
- SSID מוסתר
- רצועת הפעלה וערוץ (כולל ACS)
- מספר מקסימלי של לקוחות מותרים
- ערך הזמן הקצוב לכיבוי אוטומטי
- רשימת הרשאות ורשימת חסימות כדי לאפשר שליטה למשתמש במכשירים המשויכים
- רמת האקראיות של MAC עבור ה-AP BSSID
- 802.11ax ו-802.11be
יכולות המכשיר קובעות את הזמינות של פקדים אלה. אנדרואיד 11 מציגה ממשקי API כדי להשיג את היכולות הללו. יצרני התקנים יכולים גם לציין יכולות התקן בסיס באמצעות שכבות-על.
שים לב שחלק ממשקי ה-API הם ממשקי API של המערכת ומוגבלים באמצעות הרשאות כך שרק אפליקציית ההגדרות של המערכת יכולה לגשת אליהם.
פיתוח אפליקציות עם ממשקי API של נקודות חמות
מימוש ברירת מחדל של נקודה חמה Wi-Fi קשורה מסופק על ידי אפליקציית הגדרות AOSP, אולם היא אינה מפעילה את כל ממשקי ה-API עבור תצורת 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
: מספק את פרטי הלקוח החסום עם אחת מהסיבות הבאות לחסימה: המכשיר הגיע למספר הלקוחות המרבי שהוא יכול לתמוך בו או שהלקוח אינו מורשה במפורש להתחבר.
-
עבור נקודה חמה קשורה:
- הגדר את תצורת ה-AP הרכה לשיתוף אינטרנט על ידי קריאה לשיטת
WifiManager#setSoftApConfiguration
ומתן מופעSoftApConfiguration
. בנו אתSoftApConfiguration
באמצעות המחלקהSoftApConfiguration.Builder
. - התחל את שיתוף האינטרנט על ידי קריאה לשיטת שיתוף האינטרנט ב-
TetheringManager#startTethering
.
לנקודה חמה מקומית בלבד:
- הפעל את הנקודה החמה המקומית בלבד עם תצורת AP רכה ספציפית על ידי קריאה לשיטת
WifiManager#startLocalOnlyHotspot
.
הטמעת רשימות אישור וחסימה
דרישה טיפוסית של ספק היא לספק למשתמש פקדים של המכשירים המורשים לשייך ל-Soft AP. ישנם מספר מנגנונים לעשות זאת:
- הגבל את המספר המרבי של מכשירים שיכולים לשייך ל-AP הרך באמצעות
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/קושחה:
אפליקציית הגדרות: אפליקציית הגדרות 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_Timerset,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 Connectivity Test Suite, או ACTS), ומבחנים של Compatibility Test Suite (CTS) כדי לאמת את תכונת הנקודה החמה. ניתן לבדוק את תכונת הנקודה החמה באמצעות ה-Vendor Test Suite (VTS).
בדיקות יחידה
אמת את חבילת הנקודה החמה באמצעות הבדיקות הבאות.
מבחני שירות:
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 מזהה מתי התכונה מופעלת וכוללת אוטומטית את הבדיקות המשויכות.
כדי להפעיל את מבחני CTS, הרץ:
atest android.net.wifi.cts.WifiManagerTest
Vendor Test Suite (VTS)
אם ממשק HIDL מיושם, הפעל:
atest VtsHalWifiHostapdV1_2Target
אם ממשק AIDL מיושם, הפעל:
atest VtsHalHostapdTargetTest