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:
Đăng ký 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ặcWifiManager#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ạiTetheringEventCallback#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:
- Đị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ảnSoftApConfiguration
. XâySoftApConfiguration
bằng cách sử dụngSoftApConfiguration.Builder
. - 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ộ:
- 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.
- Tất cả thiết bị có địa chỉ MAC trong
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)
.- 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
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ở:
Ứng dụng Cài đặt: Ứng dụng Cài đặt AOSP cung cấp đường cơ sở để định cấu hình điểm phát sóng chia sẻ Internet có SSID và thông tin xác thực bảo mật. Mã này có thể là được sử dụng nguyên trạng hoặc sửa đổi để cung cấp thêm khả năng như được mô tả trong phần Phát triển ứng dụng bằng API điểm phát sóng.
Khung: Mã khung AOSP hỗ trợ tất cả chức năng được mô tả trong phần Phát triển ứng dụng bằng API điểm phát sóng.
HAL/phần mềm cơ sở cho điểm phát sóng: Hoặc HIDL IHostaPD.hal phiên bản 1.2 trở lên hoặc AIDL IHostaPD.aidl.
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ậtSoftApConfiguration#setAutoShutdownEnabled
. Có thể ghi đè đang sử dụngSoftApConfiguration#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ởiCarrierConfigManager.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 quaSoftApCapabilities#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_wifiSoftap6gChannelList
vàconfig_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ànhtrue
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