Android รองรับฮอตสปอต Wi-Fi (Soft AP) ซึ่งรวมถึงการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ ผ่านฮอตสปอต Wi-Fi และฮอตสปอต Wi-Fi เฉพาะที่
ฟีเจอร์ Soft AP ให้คุณกำหนดค่าสิ่งต่อไปนี้ได้
- SSID และ BSSID
- ประเภทความปลอดภัย (รวมถึง WPA3)
- SSID ที่ซ่อนไว้
- ช่วงช่องและการดำเนินงาน (รวมถึง ACS)
- จำนวนไคลเอ็นต์สูงสุดที่อนุญาต
- ค่าระยะหมดเวลาสำหรับการปิดอัตโนมัติ
- รายการที่อนุญาตและรายการที่บล็อกเพื่อให้ผู้ใช้ควบคุมอุปกรณ์ที่เกี่ยวข้องได้
- ระดับการสุ่ม MAC สำหรับ AP BSSID
- 802.11ax และ 802.11be
ความสามารถของอุปกรณ์จะกำหนดความพร้อมใช้งานของการควบคุมเหล่านี้ Android 11 เปิดตัว API เพื่อรับความสามารถเหล่านี้ ผู้ผลิตอุปกรณ์ยังระบุความสามารถของอุปกรณ์พื้นฐาน โดยใช้การวางซ้อนได้อีกด้วย
โปรดทราบว่า API บางรายการเป็น API ของระบบและถูกจำกัดผ่านสิทธิ์เพื่อให้มีเฉพาะแอปการตั้งค่าของระบบเท่านั้นที่เข้าถึงได้
พัฒนาแอปด้วย API สำหรับฮอตสปอต
แอปการตั้งค่า AOSP จะใช้งานฮอตสปอต Wi-Fi ที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยค่าเริ่มต้น แต่จะไม่ใช้ API ทั้งหมดสำหรับการกำหนดค่า Soft AP
หากต้องการรองรับการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือผ่านฮอตสปอตหรือฮอตสปอตในเครื่องเท่านั้น แอปต้องดำเนินการฟังก์ชันต่อไปนี้
ลงทะเบียน Callback เพื่อรับความสามารถของอุปกรณ์โดยใช้
WifiManager#registerSoftApCallback
สำหรับฮอตสปอตที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ หรือWifiManager#registerLocalOnlyHotspotSoftApCallback
สำหรับฮอตสปอตในเครื่องเท่านั้นCallback
SoftApCallback
มีวิธีดังต่อไปนี้SoftApCallback#onCapabilityChanged
: ให้ข้อมูลเกี่ยวกับความสามารถของอุปกรณ์ รวมถึงจำนวนไคลเอ็นต์ที่รองรับสูงสุดและรองรับ SAE หรือ ACSSoftApCallback#onInfoChanged
: ให้ข้อมูลเกี่ยวกับ Soft AP ที่ทำงานอยู่ (ใช้ได้เมื่อเริ่มใช้งานเท่านั้น) ซึ่งรวมถึงข้อมูลย่านความถี่และความถี่SoftApCallback#onConnectedClientsChanged
: แสดงรายชื่อลูกค้าที่เชื่อมต่อ คุณสามารถรับที่อยู่ MAC สำหรับไคลเอ็นต์แต่ละราย หากต้องการรับข้อมูล IP ให้ใช้ CallbackTetheringEventCallback#onClientsChanged
SoftApCallback#onStateChanged
: ให้อัปเดตเกี่ยวกับสถานะของ Soft AP เมื่อมีการเปิดและปิดใช้SoftApCallback#onBlockedClientConnecting
: ให้ข้อมูลไคลเอ็นต์ที่ถูกบล็อกพร้อมเหตุผลข้อใดข้อหนึ่งต่อไปนี้สำหรับการบล็อก กล่าวคือ อุปกรณ์มีไคลเอ็นต์ครบจำนวนสูงสุดที่รองรับได้ หรือไคลเอ็นต์ไม่ได้รับอนุญาตอย่างชัดเจนให้เชื่อมต่อ
สำหรับฮอตสปอตที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ
- กำหนดค่าการกำหนดค่า Soft AP สำหรับการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยการเรียกใช้เมธอด
WifiManager#setSoftApConfiguration
และระบุอินสแตนซ์SoftApConfiguration
สร้างSoftApConfiguration
โดยใช้คลาสSoftApConfiguration.Builder
- เริ่มการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยเรียกใช้วิธีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือที่
TetheringManager#startTethering
สำหรับฮอตสปอตในพื้นที่เท่านั้น
- เริ่มฮอตสปอตในเครื่องเท่านั้นด้วยการกำหนดค่า Soft 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
: เลือกว่าจะอัปเกรดการกำหนดค่าการตั้งค่าย่านความถี่เป็น 2 ย่านความถี่โดยอัตโนมัติในระหว่างการกู้คืนการกำหนดค่าระบบคลาวด์หรือไม่เมื่อมีการรองรับอุปกรณ์ใหม่- (มีตั้งแต่ 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 มีชุดการทดสอบ 1 หน่วยและการทดสอบชุดทดสอบความเข้ากันได้ (CTS) เพื่อตรวจสอบฟีเจอร์ฮอตสปอต คุณยังทดสอบฟีเจอร์ฮอตสปอตโดยใช้ Vendor Test Suite (VTS) ได้อีกด้วย
การทดสอบ 1 หน่วย
ยืนยันแพ็กเกจฮอตสปอตโดยใช้การทดสอบต่อไปนี้
การทดสอบบริการ:
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