Wi-Fi Hotspot (Soft AP) รองรับ Tethering

Android รองรับการปล่อยสัญญาณผ่าน Wi-Fi hotspot (Soft AP) จาก Android 11 การกำหนดค่า Soft AP ที่มีให้สำหรับผู้ผลิตอุปกรณ์จะสนับสนุนกรณีการใช้งานและการปรับแต่งของผู้ให้บริการเพิ่มเติม รวมถึงการกำหนดค่าต่อไปนี้:

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

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

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

ตัวอย่างและที่มา

แอปการตั้งค่า AOSP มีการใช้งานเริ่มต้น แต่ไม่ได้ใช้ API ทั้งหมดสำหรับการกำหนดค่า Soft AP แอปโทรต้องทำหน้าที่สามอย่างนี้:

  1. ลงทะเบียนโทรกลับจะได้รับความสามารถของอุปกรณ์โดยใช้ WifiManager#registerSoftApCallback SoftApCallback โทรกลับให้หลายวิธี:

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

  3. เริ่มต้นการเชื่อมต่ออินเทอร์เน็ตโดยเรียกวิธีการเชื่อมต่ออินเทอร์เน็ตที่ TetheringManager#startTethering

การใช้รายการอนุญาตและบล็อก

ข้อกำหนดของผู้ให้บริการโดยทั่วไปคือการให้ผู้ใช้มีการควบคุมอุปกรณ์ที่ได้รับอนุญาตให้เชื่อมโยงกับ Soft AP มีกลไกหลายอย่างในการทำเช่นนี้:

  • จำกัด จำนวนสูงสุดของอุปกรณ์ที่สามารถเชื่อมโยงกับ AP นุ่มใช้ SoftApConfiguration.Builder#setMaxNumberOfClients ตรวจสอบให้แน่ใจว่าได้ระบุจำนวนที่ต่ำกว่าจำนวนไคลเอนต์สูงสุดที่อุปกรณ์รองรับ คุณสามารถขอรับจำนวนสูงสุดจาก SoftApCapability#getMaxSupportedClients
  • ให้การควบคุมแบบไดนามิกโดยใช้รายการอนุญาตและบล็อก:

    • กำหนดค่าเริ่มต้นของ AP ซอฟท์จะช่วยให้อุปกรณ์ทุกคนที่จะร่วมกับ 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 )

การดำเนินการ

เพื่อรองรับการปล่อยสัญญาณผ่าน Wi-Fi hotspot (Soft AP) ผู้ผลิตอุปกรณ์ต้องจัดเตรียมแอปการตั้งค่า เฟรมเวิร์ก และการสนับสนุน HAL/เฟิร์มแวร์:

  • ตั้งค่า app: app AOSP การตั้งค่าให้พื้นฐานสำหรับการกำหนดค่าเชื่อมต่ออินเทอร์เน็ตผ่านฮอตสปอตกับ SSID และข้อมูลประจำตัวการรักษาความปลอดภัย รหัสนี้สามารถนำมาใช้ตามที่เป็นอยู่หรือการปรับเปลี่ยนเพื่อให้สามารถเพิ่มเติมตามที่อธิบายไว้ใน ตัวอย่างและแหล่งที่มา

  • กรอบ: รหัสกรอบ AOSP สนับสนุนทั้งหมดของการทำงานที่อธิบายไว้ใน ตัวอย่างและแหล่งที่มา

  • HAL / เฟิร์มแวสำหรับฮอตสปอต: IHostapd.HAL รุ่น 1.2 หรือสูงกว่า

การปรับแต่ง

ในการปรับแต่งการดำเนินการผลิตอุปกรณ์ควรกำหนดค่าการวางซ้อนต่อไปและการกำหนดค่าบริการที่มีการบันทึกไว้ใน packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : ช่วงหมดเวลาปิดเริ่มต้น ใช้ได้เฉพาะถ้า SoftApConfiguration#setAutoShutdownEnabled ถูกเปิดใช้งาน สามารถแทนที่การใช้ SoftApConfiguration#setShutdownTimeoutMillis
  • config_wifiHardwareSoftapMaxClientCount : ข้อ จำกัด ฮาร์ดแวร์สำหรับจำนวนสูงสุดของลูกค้าที่ได้รับการสนับสนุน จำนวนสูงสุดของลูกค้าว่าอุปกรณ์ที่สนับสนุนขั้นต่ำของฮาร์ดแวร์และผู้ให้บริการ จำกัด (ระบุโดย CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ) ผลสุดท้ายมีให้กับ app กับ SoftApCapabilities#getMaxSupportedClients
  • config_wifiSofapClientForceDisconnectSupported : ไม่ว่าจะเป็นอุปกรณ์ที่มีความสามารถในการที่จะบังคับให้ยกเลิกการเชื่อมต่อลูกค้า จำเป็นต้องเปิดใช้งานรายการอนุญาตและบล็อก การสื่อสารไปยังแอปควบคุม (ตั้งค่าแอป) ผ่าน SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT )
  • การสนับสนุนช่อง: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList และ config_wifiSoftap6gChannelList
  • การคืนค่าการสนับสนุนการระบุว่ารายการที่สอดคล้องกันจะถูกรีเซ็ตเป็นค่าเริ่มต้นเมื่อคืนการตั้งค่าสปอตไปยังอุปกรณ์ใหม่: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig หมายเหตุว่าสิ่งเหล่านี้มีการกำหนดให้ true โดยปริยายหมายความว่าค่าจะถูกรีเซ็ต นี่เป็นสิ่งสำคัญหากอุปกรณ์ใหม่ไม่รองรับการกำหนดค่า
  • ความสามารถของฮาร์ดแวร์:

    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftapAcsIncludeDfs

การตรวจสอบความถูกต้อง

Android มีชุดการทดสอบหน่วย การทดสอบการรวม (Android Connectivity Test Suite หรือ 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/google/wifi/WifiSoftApTest.py ดำเนินการทดสอบการทำงานของคุณลักษณะฮอตสปอต

การทดสอบความเข้ากันได้ของชุดทดสอบ (CTS)

ใช้ CTS ทดสอบ เพื่อตรวจสอบคุณสมบัติสปอต CTS ตรวจพบเมื่อเปิดใช้งานคุณสมบัติและรวมการทดสอบที่เกี่ยวข้องโดยอัตโนมัติ

หากต้องการเรียกใช้การทดสอบ CTS ให้เรียกใช้:

atest android.net.wifi.cts.WifiManagerTest

ชุดทดสอบผู้ขาย (VTS)

ในการรันการทดสอบ VTS ให้รัน:

atest VtsHalWifiHostapdV1_2Target