Android ให้การสนับสนุนฮอตสปอต Wi-Fi (Soft AP) รวมถึงการเชื่อมต่ออินเทอร์เน็ตผ่านฮอตสปอต Wi-Fi และฮอตสปอต Wi-Fi เฉพาะในพื้นที่เท่านั้น
คุณสมบัติซอฟต์ AP ช่วยให้สามารถกำหนดค่าดังต่อไปนี้:
- SSID และ BSSID
- ประเภทความปลอดภัย (รวมถึง WPA3)
- SSID ที่ซ่อนอยู่
- วงดนตรีและช่องสัญญาณปฏิบัติการ (รวมถึง ACS)
- จำนวนลูกค้าที่อนุญาตสูงสุด
- ค่าการหมดเวลาปิดอัตโนมัติ
- รายการที่อนุญาตและรายการที่บล็อกเพื่อให้ผู้ใช้ควบคุมอุปกรณ์ที่เกี่ยวข้องได้
- ระดับของการสุ่ม MAC สำหรับ AP BSSID
- 802.11ax และ 802.11be
ความสามารถของอุปกรณ์จะกำหนดความพร้อมใช้งานของการควบคุมเหล่านี้ Android 11 แนะนำ API เพื่อรับความสามารถเหล่านี้ ผู้ผลิตอุปกรณ์ยังสามารถระบุความสามารถของอุปกรณ์พื้นฐานโดยใช้การซ้อนทับได้
โปรดทราบว่า API บางตัวเป็น API ของระบบและถูกจำกัดสิทธิ์เพื่อให้มีเพียงแอปการตั้งค่าของระบบเท่านั้นที่สามารถเข้าถึงได้
การพัฒนาแอพด้วย hotspot 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
-
SoftApCallback#onStateChanged
: ให้การอัปเดตเกี่ยวกับสถานะของ Soft AP เมื่อมีการเปิดใช้งานและปิดใช้งาน -
SoftApCallback#onBlockedClientConnecting
: ให้ข้อมูลไคลเอ็นต์ที่ถูกบล็อกด้วยเหตุผลข้อใดข้อหนึ่งต่อไปนี้สำหรับการบล็อก: อุปกรณ์มีไคลเอ็นต์ถึงจำนวนสูงสุดที่สามารถรองรับได้ หรือไคลเอ็นต์ไม่ได้รับอนุญาตให้เชื่อมต่ออย่างชัดเจน
-
สำหรับฮอตสปอตที่เชื่อมต่ออินเทอร์เน็ต:
- กำหนดค่าการกำหนดค่า soft AP สำหรับการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยเรียกใช้เมธอด
WifiManager#setSoftApConfiguration
และจัดเตรียมอินสแตนซ์SoftApConfiguration
สร้างSoftApConfiguration
โดยใช้คลาสSoftApConfiguration.Builder
- เริ่มการเชื่อมต่ออินเทอร์เน็ตโดยเรียกวิธีการเชื่อมต่ออินเทอร์เน็ตที่
TetheringManager#startTethering
สำหรับฮอตสปอตเฉพาะในพื้นที่:
- เริ่มต้นฮอตสปอตเฉพาะในเครื่องด้วยการกำหนดค่า soft AP เฉพาะโดยเรียกเมธอด
WifiManager#startLocalOnlyHotspot
การใช้รายการที่อนุญาตและบล็อก
ข้อกำหนดของผู้ให้บริการโดยทั่วไปคือการให้ผู้ใช้ควบคุมอุปกรณ์ที่ได้รับอนุญาตให้เชื่อมโยงกับ Soft AP มีกลไกหลายประการในการดำเนินการนี้:
- จำกัดจำนวนอุปกรณ์สูงสุดที่สามารถเชื่อมโยงกับ soft 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 และข้อมูลรับรองความปลอดภัย รหัสนี้สามารถนำมาใช้ตามที่เป็นอยู่หรือแก้ไขเพื่อเพิ่มความสามารถตามที่อธิบายไว้ใน การพัฒนาแอปด้วย Hotspot API
เฟรมเวิร์ก: โค้ดเฟรมเวิร์ก AOSP รองรับฟังก์ชันการทำงานทั้งหมดที่อธิบายไว้ใน การพัฒนาแอปด้วย Hotspot 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
: ไม่ว่าข้อความรหัสผ่าน soft 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 มีชุดการทดสอบหน่วย การทดสอบการรวม (ชุดทดสอบการเชื่อมต่อ Android หรือ ACTS) และชุดทดสอบความเข้ากันได้ (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
ชุดทดสอบผู้ขาย (VTS)
หากใช้อินเทอร์เฟซ HIDL ให้รัน:
atest VtsHalWifiHostapdV1_2Target
หากมีการใช้งานอินเทอร์เฟซ AIDL ให้รัน:
atest VtsHalHostapdTargetTest