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 ของระบบและถูกจำกัดผ่าน เพื่อให้มีเพียงแอปการตั้งค่าของระบบเท่านั้นที่เข้าถึงข้อมูลดังกล่าวได้
พัฒนาแอปด้วย API สำหรับฮอตสปอต
AOSP จะใช้งานฮอตสปอต Wi-Fi ที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยค่าเริ่มต้น แอปการตั้งค่า แต่แอปไม่ได้ใช้ API ทั้งหมดสำหรับ Soft AP การกำหนดค่า
หากต้องการรองรับการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือผ่านฮอตสปอตหรือฮอตสปอตในเครื่องเท่านั้น ให้ทำดังนี้ แอปจะต้องทำงานต่อไปนี้
ลงทะเบียนการติดต่อกลับเพื่อรับความสามารถของอุปกรณ์โดยใช้
WifiManager#registerSoftApCallback
สำหรับฮอตสปอตที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ หรือWifiManager#registerLocalOnlyHotspotSoftApCallback
สำหรับท้องถิ่นเท่านั้น ฮอตสปอตCallback
SoftApCallback
มีวิธีดังต่อไปนี้SoftApCallback#onCapabilityChanged
: ให้ข้อมูลเกี่ยวกับความสามารถของอุปกรณ์ รวมถึงความสามารถ จำนวนไคลเอ็นต์ที่รองรับ และรองรับ SAE หรือ ACSSoftApCallback#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 ในการดำเนินการได้ดังนี้
- จำกัดจำนวนสูงสุดของอุปกรณ์ที่สามารถเชื่อมโยงกับ AP แบบยืดหยุ่น
ด้วย
SoftApConfiguration.Builder#setMaxNumberOfClients
อย่าลืม ระบุจำนวนที่น้อยกว่าจำนวนไคลเอ็นต์สูงสุดที่รองรับ ตามอุปกรณ์ คุณสามารถดูจำนวนสูงสุดได้จากSoftApCapability#getMaxSupportedClients
มอบการควบคุมแบบไดนามิกโดยใช้รายการอนุญาตและบล็อก ดังนี้
- การกำหนดค่าเริ่มต้นของ Soft AP จะอนุญาตให้อุปกรณ์ทั้งหมด
เชื่อมโยงกับ 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 จะอนุญาตให้อุปกรณ์ทั้งหมด
เชื่อมโยงกับ 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 มีชุดการทดสอบ 1 หน่วยและการทดสอบชุดทดสอบความเข้ากันได้ (CTS) เพื่อตรวจสอบฟีเจอร์ฮอตสปอต คุณยังทดสอบฟีเจอร์ฮอตสปอตได้โดยใช้ ชุดทดสอบของผู้ให้บริการ (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