Android hỗ trợ điểm phát sóng Wi-Fi (Soft AP), bao gồm cả tính năng chia sẻ Internet 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 đị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 ứng dụ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 của địa chỉ MAC cho BSSID của điểm truy cập
- 802.11ax và 802.11be
Khả năng của thiết bị sẽ xác định việc có các chế độ điều khiển này hay không. Android 11 ra mắt các API để có được những tính năng này. Nhà sản xuất thiết bị cũng có thể chỉ định các chức năng cơ bản của thiết bị bằng cách sử dụng lớp phủ.
Xin 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 vào các API đó.
Phát triển ứng dụng bằng API điểm phát sóng
Ứng dụng Cài đặt AOSP cung cấp cách triển khai mặc định của điểm phát sóng Wi-Fi được chia sẻ. Tuy nhiên, ứng dụng này không thực thi tất cả API cho cấu hình AP mềm.
Để hỗ trợ tính năng chia sẻ Internet thông qua điểm phát sóng hoặc điểm phát sóng chỉ trên thiết 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 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 chia sẻ Internet hoặcWifiManager#registerLocalOnlyHotspotSoftApCallback
cho điểm phát sóng chỉ trong 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 ứng dụng tối đa được hỗ trợ và 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ệ sau khi khởi động), 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 khách đã kết nối. Đối với mỗi ứng dụng, bạn có thể có đượ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 Soft khi được bật và tắt.SoftApCallback#onBlockedClientConnecting
: Cung cấp thông tin về ứng dụng bị chặn kèm theo một trong các lý do sau đây khiến ứng dụng bị chặn: thiết bị đã đạt đến số lượng ứng dụng tối đa mà nó có thể hỗ trợ hoặc ứng dụng không được cho phép kết nối một cách rõ ràng.
Đố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 phương thức
WifiManager#setSoftApConfiguration
và cung cấp một thực thểSoftApConfiguration
. TạoSoftApConfiguration
bằng lớpSoftApConfiguration.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ỉ trong cục bộ bằng một 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à danh sách chặn
Một yêu cầu thông thường của nhà mạng là cung cấp cho người dùng quyền kiểm soát những thiết bị được phép liên kết với AP mềm. 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
SoftApConfiguration.Builder#setMaxNumberOfClients
. Hãy nhớ chỉ định số thấp hơn số ứng dụng tối đa mà thiết bị hỗ trợ. Bạn có thể lấy số lượng tối đa từSoftApCapability#getMaxSupportedClients
. Cung cấp chế độ kiểm soát linh độ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 được thêm vào
SoftApConfiguration.Builder#setBlockedClientList
. Nếu AP mềm đượ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ả thiết bị có địa chỉ MAC trong
SoftApConfiguration.Builder#setBlockedClientList
sẽ bị chặn liên kết. - Tất cả thiết bị có địa chỉ MAC trong
SoftApConfiguration.Builder#setAllowedClientList
đều được 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 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 điều khiển (tức là ứng dụng Cài đặt) thực hiện một hành động, ví dụ: yêu cầu người dùng xác nhận, 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 chức năng này đượ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 được thêm vào
Triển khai
Để hỗ trợ tính năng chia sẻ Internet qua điểm phát sóng hoặc để hỗ trợ điểm phát sóng chỉ dành cho 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:
Ứ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 Internet có SSID và thông tin xác thực bảo mật. Bạn có thể sử dụng mã này nguyên trạng hoặc sửa đổi để cung cấp các chức năng bổ sung như 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át triển ứng dụng bằng API điểm phát sóng.
HAL/phần mềm cho điểm phát sóng: HIDL IHostapd.hal phiên bản 1.2 trở lên hoặc AIDL IHostapd.aidl.
Tuỳ chỉnh
Để tuỳ chỉnh quá trình 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à mạng sau đây (đượ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 bạn bậtSoftApConfiguration#setAutoShutdownEnabled
. Có thể ghi đè bằng cách sử dụngSoftApConfiguration#setShutdownTimeoutMillis
.config_wifiHardwareSoftapMaxClientCount
: Giới hạn phần cứng đối với số lượng ứng dụng khách được hỗ trợ tối đa. Số lượng ứng dụng tối đa mà thiết bị hỗ trợ là số lượng tối thiểu của các điều kiện ràng buộc về phần cứng và nhà mạng (doCarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT
chỉ định). Kết quả cuối cùng được cung cấp cho ứng dụng bằngSoftApCapabilities#getMaxSupportedClients
.config_wifiSofapClientForceDisconnectSupported
: Liệu thiết bị có thể buộc ngắt kết nối với ứng dụng khách hay không. Bắt buộc để bật danh sách cho phép và chặn. Thông báo cho ứng dụng điều khiển (ứng dụng Cài đặt) thông quaSoftApCapabilities#areFeaturesSupported(SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT)
.- (Có từ phiên bản 13)
config_wifiSoftapPassphraseAsciiEncodableCheck
: Cụm mật khẩu của AP mềm có bắt buộc phải mã hoá được bằng ASCII hay không. config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported
: Liệu có 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 trên đám mây khi có thiết bị mới được hỗ trợ hay không.- (Có sẵn từ 13)
config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled
: Liệu khung có tự động thêm các băng tần thấp hơn vào cấu hình băng tần để tránh việc xử lý cùng tồn tại hay không. config_wifiSoftApDynamicCountryCodeUpdateSupported
: Liệu tính năng cập nhật mã quốc gia động ở chế độ AP có được hỗ trợ trên thiết bị hay không- Hỗ trợ kênh:
config_wifiSoftap2gChannelList
,config_wifiSoftap5gChannelList
,config_wifiSoftap6gChannelList
vàconfig_wifiSoftap60gChannelList
. - Khả năng hỗ trợ khôi phục chỉ định xem các mục tương ứng có được đặt lại thành mặc định khi khôi phục cấu hình điểm phát sóng sang thiết bị mới hay không:
config_wifiSoftapResetChannelConfig
,config_wifiSoftapResetHiddenConfig
,config_wifiSoftapResetUserControlConfig
,config_wifiSoftapResetAutoShutdownTimerConfig
,config_wifiSoftapResetMaxClientSettingConfig
. Xin 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ị sẽ đượ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ó từ phiên bản 13)
config_wifiSoftapOweTransitionSupported
- (Có từ phiên bản 13)
config_wifiSoftapOweSupported
config_wifi_softap_ieee80211ac_supported
config_wifiSoftapIeee80211axSupported
- (Có sẵn 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ộ kiểm thử đơn vị và kiểm thử Bộ kiểm thử 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 thử tính năng điểm phát sóng bằng Bộ kiểm thử 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 kiểm thử sau.
Kiểm thử dịch vụ:
atest packages/modules/Wifi/service/tests/wifitests/
Kiểm thử trình quản lý:
atest packages/modules/Wifi/framework/tests/
Các bài kiểm thử của Bộ kiểm tra tính tương thích (CTS)
Sử dụng kiểm thử CTS để xác thực tính năng điểm phát sóng. CTS phát hiện thời điểm bật tính năng này và tự động đưa các bài kiểm thử liên quan vào.
Để kích hoạt các bài kiểm thử 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