נקודה חמה של Wi-Fi (AP רך)

אנדרואיד מספקת תמיכה עבור נקודה חמה של 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 רכה.

כדי לתמוך בשיתוף אינטרנט דרך נקודה חמה או נקודה חמה מקומית בלבד, האפליקציה חייבת לבצע את הפונקציות הבאות:

  1. רשום התקשרות חוזרת כדי לקבל את יכולות המכשיר באמצעות 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 : מספק את פרטי הלקוח החסום עם אחת מהסיבות הבאות לחסימה: המכשיר הגיע למספר הלקוחות המרבי שהוא יכול לתמוך בו או שהלקוח אינו מורשה במפורש להתחבר.

עבור נקודה חמה קשורה:

  1. הגדר את תצורת ה-AP הרכה לשיתוף אינטרנט על ידי קריאה לשיטת WifiManager#setSoftApConfiguration ומתן מופע SoftApConfiguration . בנו את SoftApConfiguration באמצעות המחלקה SoftApConfiguration.Builder .
  2. התחל את שיתוף האינטרנט על ידי קריאה לשיטת שיתוף האינטרנט ב- TetheringManager#startTethering .

לנקודה חמה מקומית בלבד:

  1. הפעל את הנקודה החמה המקומית בלבד עם תצורת 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 , ומאפשרת לאפליקציה השולטת (כלומר, אפליקציית ההגדרות) לבצע פעולה, עבור לדוגמה, בקשת אישור מהמשתמש ולאחר מכן הוספת המכשיר לרשימת ההיתרים או לרשימת החסימות בהתאם להתנהגות המשתמש.

    שים לב שמכשירים יכולים להשתמש בפונקציונליות רשימת ההיתרים רק אם היא נתמכת במכשיר. אתה יכול לאמת תמיכה במכשיר באמצעות SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .

יישום

כדי לתמוך בשיתוף אינטרנט בין ניידים דרך נקודה חמה או כדי לתמוך בנקודה חמה מקומית בלבד, יצרני המכשיר חייבים לספק תמיכה באפליקציית הגדרות, מסגרת ו-HAL/קושחה:

התאמה אישית

כדי להתאים אישית את היישום, יצרני המכשיר צריכים להגדיר את שכבות-העל ותצורות הספק הבאות, המתועדות 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