Điểm phát sóng Wi-Fi (Điểm truy cập mềm)

Android hỗ trợ điểm phát sóng Wi-Fi (AP mềm), bao gồm cả tính năng chia sẻ Internet thông qua điểm phát sóng Wi-Fi và điểm phát sóng Wi-Fi chỉ trong cục bộ.

Tính năng AP mềm cho phép định cấu hình những mục sau:

  • SSID và BSSID
  • Loại bảo mật (bao gồm cả WPA3)
  • SSID ẩn
  • Kênh và băng tần hoạt động (bao gồm cả ACS)
  • Số lượng khách hàng tối đa được phép
  • Giá trị thời gian chờ tự động tắt
  • Danh sách cho phép và danh sách chặn để cho phép người dùng kiểm soát các thiết bị được liên kết
  • Mức độ ngẫu nhiên MAC cho AP BSSID
  • 802.11ax và 802.11be

Khả năng của thiết bị quyết định khả năng sử dụng các chế độ kiểm soát này. Android 11 ra mắt các API để lấy những các chức năng khác nhau. Nhà sản xuất thiết bị cũng có thể chỉ định chức năng cơ bản của thiết bị bằng cách sử dụng lớp phủ.

Lưu ý rằng một số API là API hệ thống và bị hạn chế thông qua để chỉ ứng dụng Cài đặt của hệ thống mới có thể truy cập vào các quyền đó.

Phát triển ứng dụng có API điểm phát sóng

AOSP cung cấp phương thức triển khai mặc định cho điểm phát sóng Wi-Fi được chia sẻ Internet Ứng dụng Settings (Cài đặt), tuy nhiên, ứng dụng này không thực thi tất cả các API cho Soft AP .

Để hỗ trợ chia sẻ Internet thông qua điểm phát sóng hoặc điểm phát sóng chỉ trong cục bộ, ứng dụng phải thực hiện các chức năng sau:

  1. Đăng ký một lệnh gọi lại để lấy các tính năng của thiết bị bằng cách sử dụng WifiManager#registerSoftApCallback cho điểm phát sóng được chia sẻ Internet hoặc WifiManager#registerLocalOnlyHotspotSoftApCallback cho quảng cáo cục bộ điểm phát sóng.

    Lệnh gọi lại SoftApCallback cung cấp các phương thức sau:

    • SoftApCallback#onCapabilityChanged: Cung cấp thông tin về khả năng của thiết bị, bao gồm cả mức tối đa số lượng khách hàng được hỗ trợ cũng như liệu SAE hay ACS được hỗ trợ.
    • SoftApCallback#onInfoChanged: Cung cấp thông tin về AP mềm đang chạy (chỉ hợp lệ một lần) đã bắt đầu), bao gồm cả thông tin về băng tần và tần số.
    • SoftApCallback#onConnectedClientsChanged: Cung cấp danh sách các ứng dụng đã kết nối. Đối với mỗi khách hàng, bạn có thể nhận được địa chỉ MAC. Để lấy thông tin IP, hãy sử dụng Lệnh gọi lại TetheringEventCallback#onClientsChanged.
    • SoftApCallback#onStateChanged: Cung cấp thông tin cập nhật về trạng thái của AP mềm khi được bật và tắt.
    • SoftApCallback#onBlockedClientConnecting: Cung cấp một trong các thông tin sau về ứng dụng khách bị chặn lý do chặn: thiết bị đã đạt đến số lượng tối đa các ứng dụng khách mà hệ thống có thể hỗ trợ hoặc ứng dụng khách không được uỷ quyền rõ ràng để kết nối.

Đối với điểm phát sóng được chia sẻ Internet:

  1. Định cấu hình cấu hình AP mềm cho hoạt động chia sẻ Internet bằng cách gọi hàm WifiManager#setSoftApConfiguration và cung cấp một phiên bản SoftApConfiguration. Xây SoftApConfiguration bằng cách sử dụng SoftApConfiguration.Builder .
  2. Bắt đầu chia sẻ Internet bằng cách gọi phương thức chia sẻ Internet tại TetheringManager#startTethering.

Đối với điểm phát sóng chỉ trong cục bộ:

  1. Khởi động điểm phát sóng chỉ cục bộ với cấu hình AP mềm cụ thể bằng cách đang gọi WifiManager#startLocalOnlyHotspot .

Triển khai danh sách cho phép và danh sách chặn

Một yêu cầu điển hình của nhà mạng là cung cấp cho người dùng khả năng kiểm soát các thiết bị được phép liên kết với AP mềm. Có một vài cơ chế để thực hiện việc này:

  • Giới hạn số lượng thiết bị tối đa có thể liên kết với AP mềm đang sử dụng SoftApConfiguration.Builder#setMaxNumberOfClients. Hãy nhớ chỉ định số thấp hơn số khách hàng tối đa được hỗ trợ theo thiết bị. Bạn có thể nhận được số điện thoại tối đa từ SoftApCapability#getMaxSupportedClients.
  • Cung cấp chế độ kiểm soát động bằng danh sách cho phép và danh sách chặn:

    • Cấu hình mặc định của AP mềm cho phép tất cả thiết bị liên kết với AP mềm ngoại trừ các thiết bị có địa chỉ MAC là đã thêm vào SoftApConfiguration.Builder#setBlockedClientList.
    • Nếu AP mềm được định cấu hình bằng SoftApConfiguration.Builder#setClientControlByUserEnabled(true), danh sách cho phép sẽ được dùng.

      • Tất cả thiết bị có địa chỉ MAC trong SoftApConfiguration.Builder#setBlockedClientList bị chặn khỏi liên kết.
      • Tất cả thiết bị có địa chỉ MAC trong SoftApConfiguration.Builder#setAllowedClientList được cho phép liên kết.
      • Tất cả thiết bị khác (tức là các thiết bị có địa chỉ MAC không có trong danh sách cho phép hoặc chặn) bị chặn liên kết nhưng SoftApCallback#onBlockedClientConnecting là được gọi, cho phép ứng dụng điều khiển (tức là ứng dụng Cài đặt) thực hiện hành động, ví dụ: yêu cầu người dùng xác nhận và sau đó thêm thiết bị vào danh sách cho phép hoặc danh sách chặn tuỳ thuộc vào hành vi của người dùng.

    Xin lưu ý rằng các thiết bị chỉ có thể sử dụng chức năng danh sách cho phép nếu được hỗ trợ trên thiết bị. Bạn có thể xác minh khả năng hỗ trợ thiết bị bằng SoftApCapability#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT).

Triển khai

Để hỗ trợ chia sẻ Internet qua điểm phát sóng hoặc hỗ trợ điểm phát sóng chỉ trong cục bộ, nhà sản xuất thiết bị phải cung cấp ứng dụng Cài đặt, khung, và hỗ trợ HAL/phần mềm cơ sở:

Tuỳ chỉnh

Để tuỳ chỉnh phương thức triển khai, nhà sản xuất thiết bị nên định cấu hình các lớp phủ và cấu hình mạng di động sau, được ghi lại trong packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml:

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds: Mặc định khoảng thời gian chờ tắt. Chỉ hợp lệ nếu Đã bật SoftApConfiguration#setAutoShutdownEnabled. Có thể ghi đè đang sử dụng SoftApConfiguration#setShutdownTimeoutMillis.
  • config_wifiHardwareSoftapMaxClientCount: Giới hạn phần cứng đối với số lượng khách hàng tối đa được hỗ trợ. Số lượng khách hàng tối đa mà thiết bị hỗ trợ là mức tối thiểu về phần cứng và nhà cung cấp dịch vụ các hạn chế (được chỉ định bởi CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT). Kết quả cuối cùng được cung cấp cho ứng dụng có SoftApCapabilities#getMaxSupportedClients.
  • config_wifiSofapClientForceDisconnectSupported: Liệu thiết bị có khả năng buộc ngắt kết nối ứng dụng khách. Bắt buộc để bật chế độ cho phép và chặn danh sách. Được kết nối với ứng dụng điều khiển (ứng dụng Cài đặt) thông qua SoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT).
  • (Có từ 13) config_wifiSoftapPassphraseAsciiEncodableCheck: Cụm mật khẩu AP mềm có bắt buộc phải mã hoá theo bộ mã ASCII hay không.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported: Có hay không để tự động nâng cấp cấu hình cài đặt băng tần lên băng tần kép trong thời gian khôi phục cấu hình đám mây khi hỗ trợ thiết bị mới.
  • (Có từ 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled: Liệu khung có tự động gắn các dải dưới vào cấu hình băng tần hay không để tránh xử lý sự cùng tồn tại.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported: Có linh động hay không thiết bị có hỗ trợ cập nhật mã quốc gia ở chế độ AP
  • Hỗ trợ kênh: config_wifiSoftap2gChannelList, config_wifiSoftap5gChannelList, config_wifiSoftap6gChannelListconfig_wifiSoftap60gChannelList.
  • Khôi phục hỗ trợ chỉ định liệu các mục nhập tương ứng có được đặt lại hay không về mặc định khi khôi phục cấu hình điểm phát sóng cho một thiết bị mới: config_wifiSoftapResetChannelConfig, config_wifiSoftapResetHiddenConfig, config_wifiSoftapResetUserControlConfig, config_wifiSoftapResetAutoShutdownTimerConfig, config_wifiSoftapResetMaxClientSettingConfig. Lưu ý rằng các giá trị này được đặt thành true theo mặc định, nghĩa là các giá trị được đặt lại. Điều này rất quan trọng nếu thiết bị mới không hỗ trợ cấu hình này.
  • Khả năng phần cứng:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (Có từ 13) config_wifiSoftapOweTransitionSupported
    • (Có từ 13) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (Có từ 13) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Xác nhận kết quả

Android cung cấp một bộ các bài kiểm thử đơn vị và bài kiểm thử Bộ kiểm tra tính tương thích (CTS) để xác thực tính năng điểm phát sóng. Bạn cũng có thể kiểm tra tính năng điểm phát sóng bằng cách sử dụng Bộ thử nghiệm nhà cung cấp (VTS).

Kiểm thử đơn vị

Xác minh gói điểm phát sóng bằng các quy trình kiểm thử sau.

  • Kiểm thử dịch vụ:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Thử nghiệm dành cho người quản lý:

    atest packages/modules/Wifi/framework/tests/
    

Các bài kiểm tra Bộ kiểm tra tính tương thích (CTS)

Sử dụng quy trình kiểm traCTS để xác thực tính năng điểm phát sóng. CTS sẽ phát hiện khi tính năng này được bật và tự động đưa vào kiểm thử liên quan.

Để kích hoạt thử nghiệm CTS, hãy chạy:

atest android.net.wifi.cts.WifiManagerTest

Bộ thử nghiệm nhà cung cấp (VTS)

Nếu giao diện HIDL được triển khai, hãy chạy:

atest VtsHalWifiHostapdV1_2Target

Nếu giao diện AIDL được triển khai, hãy chạy:

atest VtsHalHostapdTargetTest