Wi-Fi ฮอตสปอต (Soft AP)

Android รองรับฮอตสปอต Wi-Fi (Soft AP) รวมถึงการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือผ่านฮอตสปอต Wi-Fi และฮอตสปอต Wi-Fi ในพื้นที่เท่านั้น

ฟีเจอร์ Soft AP ช่วยให้สามารถกำหนดค่าสิ่งต่อไปนี้ได้

  • SSID และ BSSID
  • ประเภทความปลอดภัย (รวมถึง WPA3)
  • SSID ที่ซ่อนไว้
  • ย่านและช่องสัญญาณที่ใช้งาน (รวมถึง ACS)
  • จำนวนไคลเอ็นต์สูงสุดที่อนุญาต
  • ค่าระยะหมดเวลาสำหรับการปิดอัตโนมัติ
  • รายการที่อนุญาตและรายการที่บล็อกเพื่อให้ผู้ใช้ควบคุมอุปกรณ์ที่เกี่ยวข้องได้
  • ระดับการสุ่ม MAC สำหรับ BSSID ของ AP
  • 802.11ax และ 802.11be

ความสามารถของอุปกรณ์จะเป็นตัวกำหนดความพร้อมใช้งานของการควบคุมเหล่านี้ Android 11 เปิดตัว API เพื่อรับความสามารถเหล่านี้ นอกจากนี้ ผู้ผลิตอุปกรณ์ยังระบุความสามารถพื้นฐานของอุปกรณ์ได้โดยใช้การวางซ้อน

โปรดทราบว่า API บางรายการเป็น API ของระบบและถูกจํากัดผ่านสิทธิ์เพื่อให้มีเพียงแอปการตั้งค่าของระบบเท่านั้นที่เข้าถึงได้

พัฒนาแอปด้วย API ฮอตสปอต

แอปการตั้งค่า AOSP จะให้บริการฮอตสปอต Wi-Fi ที่เชื่อมต่ออินเทอร์เน็ตผ่านมือถือโดยค่าเริ่มต้น แต่ไม่ได้ใช้งาน API ทั้งหมดสำหรับการกำหนดค่า Soft AP

หากต้องการรองรับการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือผ่านฮอตสปอตหรือฮอตสปอตในพื้นที่เท่านั้น แอปต้องทํางานตามฟังก์ชันต่อไปนี้

  1. ลงทะเบียน Callback เพื่อรับความสามารถของอุปกรณ์โดยใช้ WifiManager#registerSoftApCallback สำหรับฮอตสปอตที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ หรือ WifiManager#registerLocalOnlyHotspotSoftApCallback สำหรับฮอตสปอตในเครื่องเท่านั้น

    ฟังก์ชัน Callback ของ SoftApCallback มีวิธีการต่อไปนี้

    • SoftApCallback#onCapabilityChanged: ให้ข้อมูลเกี่ยวกับความสามารถของอุปกรณ์ ซึ่งรวมถึงจำนวนไคลเอ็นต์สูงสุดที่รองรับ และระบุว่ารองรับ SAE หรือ ACS หรือไม่
    • SoftApCallback#onInfoChanged: ให้ข้อมูลเกี่ยวกับ Soft AP ที่ทำงานอยู่ (ใช้ได้เมื่อเริ่มใช้งานเท่านั้น) ซึ่งรวมถึงข้อมูลย่านความถี่และความถี่
    • SoftApCallback#onConnectedClientsChanged: แสดงรายการไคลเอ็นต์ที่เชื่อมต่อ คุณสามารถรับที่อยู่ MAC สำหรับแต่ละไคลเอ็นต์ได้ หากต้องการรับข้อมูล IP ให้ใช้การเรียกกลับ TetheringEventCallback#onClientsChanged
    • SoftApCallback#onStateChanged: แสดงข้อมูลอัปเดตเกี่ยวกับสถานะของ Soft AP เมื่อเปิดและปิดใช้
    • SoftApCallback#onBlockedClientConnecting: แสดงข้อมูลไคลเอ็นต์ที่ถูกบล็อกพร้อมเหตุผลในการบล็อกอย่างใดอย่างหนึ่งต่อไปนี้ อุปกรณ์มีจำนวนไคลเอ็นต์ถึงจำนวนสูงสุดที่รองรับ หรือไคลเอ็นต์ไม่ได้รับอนุญาตให้เชื่อมต่ออย่างชัดเจน

สำหรับฮอตสปอตที่เชื่อมต่ออินเทอร์เน็ตผ่านมือถือ

  1. กำหนดค่า Soft AP สำหรับการต่อฮอตสปอตโดยเรียกใช้วิธี WifiManager#setSoftApConfiguration และระบุอินสแตนซ์ SoftApConfiguration สร้าง SoftApConfiguration โดยใช้คลาส SoftApConfiguration.Builder
  2. เริ่มการต่อฮอตสปอตโดยเรียกใช้วิธีการต่อฮอตสปอตที่ TetheringManager#startTethering

สำหรับฮอตสปอตเฉพาะในพื้นที่:

  1. เริ่มฮอตสปอตในเครื่องเท่านั้นด้วยการกำหนดค่า 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 ซึ่งช่วยให้แอปที่ควบคุม (นั่นคือแอปการตั้งค่า) ดำเนินการได้ เช่น ขอให้ผู้ใช้ยืนยัน แล้วเพิ่มอุปกรณ์ลงในรายการที่อนุญาตหรือรายการที่บล็อก ทั้งนี้ขึ้นอยู่กับลักษณะการใช้งานของผู้ใช้

    โปรดทราบว่าอุปกรณ์จะใช้ฟังก์ชันการทำงานของรายการที่อนุญาตได้ก็ต่อเมื่ออุปกรณ์รองรับเท่านั้น คุณยืนยันการรองรับอุปกรณ์ได้โดยใช้ SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)

การใช้งาน

หากต้องการรองรับการต่ออุปกรณ์ผ่านฮอตสปอตหรือรองรับฮอตสปอตเฉพาะที่ ผู้ผลิตอุปกรณ์ต้องให้การสนับสนุนแอปการตั้งค่า เฟรมเวิร์ก และ 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: กำหนดว่าต้องเข้ารหัสรหัสผ่านของ 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 มีชุดการทดสอบ 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