Điểm phát sóng Wi-Fi (AP mềm)

Android cung cấp hỗ trợ cho điểm phát sóng Wi-Fi (Soft AP) bao gồm chia sẻ kết nối thông qua điểm phát sóng Wi-FI và điểm phát sóng Wi-Fi chỉ cục bộ.

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

  • SSID và BSSID
  • Loại bảo mật (bao gồm WPA3)
  • SSID ẩn
  • Băng tần và kênh hoạt động (bao gồm 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ị xác định tính khả dụng của các điều khiển này. Android 11 giới thiệu các API để có được những khả năng này. Nhà sản xuất thiết bị cũng có thể chỉ định khả năng của thiết bị cơ bản 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 các quyền để chỉ ứng dụng Cài đặt của hệ thống mới có thể truy cập chúng.

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

Việc triển khai mặc định của điểm phát sóng Wi-Fi được kết nối được cung cấp bởi ứng dụng Cài đặt AOSP, tuy nhiên, ứng dụng này không thực hiện tất cả các API cho cấu hình Soft AP.

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

  1. Đăng ký lệnh gọi lại để nhận các chức năng của thiết bị bằng cách sử dụng WifiManager#registerSoftApCallback cho điểm phát sóng được kết nối Internet hoặc WifiManager#registerLocalOnlyHotspotSoftApCallback cho điểm phát sóng chỉ cục bộ.

    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 số lượng máy khách được hỗ trợ tối đa và liệu SAE hay ACS có được hỗ trợ hay không.
    • SoftApCallback#onInfoChanged : Cung cấp thông tin về Soft AP đang chạy (chỉ hợp lệ khi đã khởi động), bao gồm thông tin về băng tần và tần số.
    • SoftApCallback#onConnectedClientsChanged : Cung cấp danh sách các máy khách được kết nối. Đối với mỗi khách hàng, bạn có thể lấy đị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 Soft AP khi nó được bật và tắt.
    • SoftApCallback#onBlockedClientConnecting : Cung cấp thông tin máy khách bị chặn với một trong những lý do chặn sau: thiết bị đã đạt đến số lượng máy khách tối đa mà nó có thể hỗ trợ hoặc máy khách không được ủy quyền rõ ràng để kết nối.

Đối với một điểm truy cập được kết nối:

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

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

  1. Bắt đầu đ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 gọi phương thức WifiManager#startLocalOnlyHotspot .

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

Yêu cầu điển hình của nhà cung cấp dịch vụ là cung cấp cho người dùng quyền kiểm soát các thiết bị được phép liên kết với Soft AP. Có một số 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 bằng cách sử dụng SoftApConfiguration.Builder#setMaxNumberOfClients . Đảm bảo chỉ định số thấp hơn số lượng khách hàng tối đa được thiết bị hỗ trợ. Bạn có thể lấy số lượng tối đa từ SoftApCapability#getMaxSupportedClients .
  • Cung cấp điều khiển động bằng cách sử dụng danh sách cho phép và chặn:

    • Cấu hình mặc định của Soft AP cho phép tất cả cá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 được thêm vào SoftApConfiguration.Builder#setBlockedClientList .
    • Nếu Soft AP được định cấu hình bằng SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) thì danh sách cho phép sẽ được sử dụng.

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

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

Thực hiện

Để hỗ trợ chia sẻ kết nối thông qua điểm phát sóng hoặc hỗ trợ điểm phát sóng chỉ 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/chương trình cơ sở:

Tùy chỉnh

Để tùy chỉnh việ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 nhà cung cấp dịch vụ sau, được ghi lại trong packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : Khoảng thời gian chờ tắt máy mặc định. Chỉ hợp lệ nếu SoftApConfiguration#setAutoShutdownEnabled được bật. Có thể ghi đè bằng cách sử dụng SoftApConfiguration#setShutdownTimeoutMillis .
  • config_wifiHardwareSoftapMaxClientCount : Giới hạn phần cứng cho số lượng máy khách được hỗ trợ tối đa. Số lượng máy khách tối đa mà thiết bị hỗ trợ là số lượng hạn chế tối thiểu về phần cứng và nhà cung cấp dịch vụ (đượ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 với SoftApCapabilities#getMaxSupportedClients .
  • config_wifiSofapClientForceDisconnectSupported : Liệu thiết bị có khả năng buộc ngắt kết nối máy khách hay không. Cần thiết để kích hoạt danh sách cho phép và chặn. Đã giao tiếp 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ó sẵn từ 13) config_wifiSoftapPassphraseAsciiEncodableCheck : Cụm mật khẩu AP mềm có bắt buộc phải được mã hóa 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 quá trình khôi phục cấu hình đám mây khi thiết bị mới được hỗ trợ.
  • (Có sẵn từ 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled : Liệu khung có tự động nối các băng tần thấp hơn vào cấu hình băng tần để tránh xử lý cùng tồn tại hay không.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported : Thiết bị có hỗ trợ cập nhật mã quốc gia động ở chế độ AP hay không
  • Hỗ trợ kênh: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , config_wifiSoftap6gChannelListconfig_wifiSoftap60gChannelList .
  • Hỗ trợ khôi phục chỉ định xem các mục tương ứng có được đặt lại về mặc định hay không khi khôi phục cấu hình điểm phát sóng sang 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.
  • Khả năng phần cứng:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (Có sẵn từ 13) config_wifiSoftapOweTransitionSupported
    • (Có sẵn từ 13) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (Có sẵn từ 13) config_wifiSoftapIeee80211beSupported trợ
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Thẩm định

Android cung cấp một tập hợp các bài kiểm tra đơn vị, bài kiểm tra tích hợp (Bộ kiểm tra kết nối Android hoặc ACTS) và bộ kiểm tra khả năng tương thích (CTS) để xác thực tính năng điểm phát sóng. Tính năng điểm phát sóng cũng có thể được kiểm tra bằng Bộ kiểm tra nhà cung cấp (VTS).

Kiểm tra đơn vị

Xác minh gói điểm phát sóng bằng các thử nghiệm sau.

  • Kiểm tra dịch vụ:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Kiểm tra người quản lý:

    atest packages/modules/Wifi/framework/tests/
    

Kiểm tra tích hợp (ACTS)

Bộ kiểm tra điểm phát sóng ACTS , nằm trong tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py , triển khai các bài kiểm tra chức năng của tính năng điểm phát sóng.

Kiểm tra Bộ kiểm tra khả năng tương thích (CTS)

Sử dụng các bài kiểm tra CTS để xác thực tính năng điểm phát sóng. CTS phát hiện khi tính năng này được bật và tự động bao gồm các bài kiểm tra liên quan.

Để kích hoạt kiểm tra 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