Trang này trình bày các thuật toán và quy trình được dùng trong Android 12 để chọn và chuyển đổi giữa các mạng Wi-Fi. Android liên tục đánh giá chất lượng của mạng đã kết nối và đánh giá chất lượng của các mạng có sẵn.
Vòng đời của một kết nối tự động
Phần này mô tả quy trình đánh giá và kết nối của thiết bị Android với các mạng Wi-Fi có sẵn.
Thiết bị quét tìm các mạng có sẵn theo một trong những cách sau, tuỳ thuộc vào việc màn hình đang bật hay tắt.
- Màn hình bật (đã kết nối): Hệ thống con kết nối Android thường xuyên đánh giá xem kết nối hiện tại có đủ tốt để bỏ qua quá trình quét hay không (như được xác định trong các lần quét khi màn hình bật). Nếu kết nối không đủ tốt để bỏ qua quá trình quét, thì hệ thống con kết nối sẽ kích hoạt một quá trình quét để phát hiện các mạng có sẵn. Các hoạt động quét này cũng có thể được kích hoạt bởi các thành phần khác của hệ thống, chẳng hạn như hệ thống vị trí hoặc một ứng dụng (bao gồm cả ứng dụng Cài đặt).
- Màn hình bật (đã ngắt kết nối): Hệ thống con kết nối Android sẽ phát hành các lần quét định kỳ theo lịch trình giảm dần theo cấp số nhân. Mô-đun này đánh giá tất cả kết quả quét nhận được và cố gắng chọn mạng tốt nhất để kết nối.
- Tắt màn hình (đã ngắt kết nối): CPU máy chủ lưu trữ lập trình chương trình cơ sở bằng danh sách các mạng ưu tiên bằng cách sử dụng các lần quét tải mạng ưu tiên (PNO) ngay khi màn hình tắt. Chương trình cơ sở sẽ đánh thức máy chủ lưu trữ nếu tìm thấy bất kỳ mạng ưu tiên nào. AOSP giả định rằng PNO được hỗ trợ trên thiết bị.
Bạn có thể dùng phương thức
WifiManager#allowAutojoinGlobal(boolean)
để tắt các kết nối tự động. Đây là một API đặc quyền mà nhà sản xuất thiết bị có thể sử dụng trong một số trường hợp nhất định (ví dụ: thiết bị không di động, được định cấu hình sẵn).Nếu thiết bị được kết nối và lớp phủ
config_wifi_framework_enable_associated_network_selection
được đặt thànhfalse
, thì không có hoạt động quét kết nối nào được thực hiện và kết quả quét không kích hoạt lựa chọn mạng. Chế độ cài đặt này không có hiệu lực khi thiết bị bị ngắt kết nối, tức là quá trình quét khả năng kết nối và chọn mạng vẫn diễn ra.Kết quả quét được đánh giá.
Nếu thiết bị được kết nối với mạng Wi-Fi, thì khung sẽ đánh giá xem mạng hiện tại có đủ tốt để bỏ qua bước chọn mạng hay không.
Một mạng được xác định là đủ tốt để bỏ qua lựa chọn mạng nếu đáp ứng bất kỳ yêu cầu nào sau đây:
- Đã ít hơn 10 giây trôi qua kể từ lần chọn mạng gần đây nhất.
- Gần đây, người dùng đã kết nối với mạng theo cách thủ công (trong đó, gần đây có thể định cấu hình bằng lớp phủ
config_wifiSufficientDurationAfterUserSelectionMilliseconds
). - Thiết bị được kết nối với một kết nối đăng ký trực tuyến (OSU).
Bạn đáp ứng tất cả các yêu cầu sau:
- RSSI cao hơn ngưỡng RSSI bắt buộc hoặc có đủ lưu lượng truy cập qua kết nối (xem các lần quét khi màn hình bật để biết ngưỡng RSSI và lưu lượng truy cập).
- Mạng này đã được xác thực (kết nối với Internet) hoặc được người dùng phê duyệt để sử dụng mà không cần truy cập vào Internet.
- Mạng không tính phí theo lưu lượng.
Nếu mạng đủ tốt để bỏ qua bước chọn mạng, thì không cần thực hiện thêm hành động nào.
Nếu mạng Wi-Fi đã kết nối không đủ mạnh hoặc nếu thiết bị chưa kết nối với mạng, thì khung sẽ gọi các đề xuất mạng để tạo danh sách các mạng Wi-Fi đề xuất để kết nối dựa trên kết quả quét đã lọc. Các đề xuất mạng tìm thấy cấu hình Wi-Fi hiện có hoặc tạo cấu hình mới cho các mạng đề xuất.
Kết quả quét được lọc để loại bỏ những BSSID có RSSI thấp hơn RSSI đầu vào (có thể định cấu hình bằng lớp phủ
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
vàconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
). Ngoài ra, các BSSID bị chặn sẽ được lọc. BSSID có thể bị chặn dựa trên các lần kết nối không thành công lặp lại, các lần ngắt kết nối thường xuyên và các yêu cầu rõ ràng từ AP không cố gắng liên kết trong một khoảng thời gian nhất định (MBO-OCE). Tính năng chặn BSSID được mô tả trong phần Chặn SSID và BSSID.Khi thiết bị di chuyển nhanh, kết quả quét có thể được lọc thêm để loại bỏ những BSSID có RSSI thay đổi nhanh chóng (cho biết rằng những BSSID đó không di chuyển cùng với thiết bị). Bạn có thể định cấu hình chế độ tối ưu hoá này bằng cách sử dụng
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(bật/tắt chế độ tối ưu hoá) và các lớp phủconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
vàconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
. Các lớp phủ này định cấu hình yêu cầu về độ ổn định đối với kết quả quét (thay đổi RSSI đối với kết quả quét được tách biệt đủ về thời gian).
Khung này chạy trình tính điểm đề xuất để tạo điểm số cho từng đề xuất bộ định danh thiết đặt dịch vụ (SSID). Các SSID đề xuất có thể bao gồm nhiều đề xuất mã nhận dạng của bộ dịch vụ cơ bản (BSSID) (do các đề xuất mạng tạo ra). Ứng cử viên có điểm số cao nhất là ứng cử viên chiến thắng.
Khung này thực thi thuật toán lựa chọn kết nối của người dùng. Thuật toán này có thể khiến mạng do người dùng chọn trở thành ứng cử viên chiến thắng mới thay vì sử dụng ứng cử viên chiến thắng từ trình tính điểm ứng cử viên.
Khung này xác định xem ứng cử viên giành chiến thắng có khớp với mạng hiện đang kết nối hay không. Để được coi là trùng khớp, bạn phải đáp ứng một trong những điều kiện sau:
- Ứng cử viên chiến thắng và mạng Wi-Fi được kết nối có cùng BSSID.
- Nếu có tính năng chuyển vùng phần mềm (bao gồm cả khả năng danh sách chặn BSSID), thì ứng cử viên chiến thắng và mạng đã kết nối sẽ có cùng SSID và loại bảo mật.
Nếu ứng cử viên chiến thắng khớp với mạng hiện đang kết nối, thì không có hành động nào khác được thực hiện. Nếu ứng cử viên chiến thắng không khớp với mạng, thì thiết bị sẽ được liên kết với ứng cử viên chiến thắng.
Xin lưu ý rằng kết nối mạng tự động sẽ bị vô hiệu hoá trong khi một ứng dụng sử dụng API Yêu cầu mạng Wi-Fi. API này sẽ ghi đè hệ thống và tạo một mạng LAN không có Internet, ngoại trừ trên những thiết bị hỗ trợ hai trạm đồng thời.
Đánh giá mạng được kết nối
Khung hoặc chương trình cơ sở Android định kỳ đánh giá chất lượng của mạng đã kết nối. Phần này mô tả cách mạng được kết nối được đánh giá khi màn hình bật hoặc tắt.
Quy trình đánh giá này được thực hiện ngoài quy trình lựa chọn mạng đã thảo luận ở trên.
Màn hình bật
Khung Android đánh giá mạng đã kết nối theo cách sau:
Dịch vụ Wi-Fi thăm dò RSSI và số liệu thống kê về lớp liên kết sau mỗi 3 giây (có thể định cấu hình bằng lớp phủ
config_wifiPollRssiIntervalMilliseconds
).Nếu bạn bật tính năng điều chỉnh khoảng thời gian động bằng lớp phủ
config_wifiAdjustPollRssiIntervalEnabled
, thì khoảng thời gian thăm dò sẽ thay đổi linh hoạt dựa trên trạng thái di động của thiết bị và RSSI.- Khoảng thời gian thăm dò được kéo dài thành 6 giây (do lớp phủ
config_wifiPollRssiLongIntervalMilliseconds
định cấu hình) khi thiết bị ở trạng thái tĩnh và RSSI lớn hơn -68 dBm (do lớp phủconfig_wifiClientRssiMonitorThresholdDbm
vàconfig_wifiClientRssiMonitorHysteresisDb
định cấu hình). - Khoảng thời gian thăm dò ý kiến sẽ giảm xuống còn 3 giây (do lớp phủ
config_wifiPollRssiIntervalMilliseconds
định cấu hình) khi thiết bị không cố định hoặc RSSI dưới -73 dBm (do lớp phủconfig_wifiClientRssiMonitorThresholdDbm
định cấu hình).
- Khoảng thời gian thăm dò được kéo dài thành 6 giây (do lớp phủ
Dịch vụ Wi-Fi tính toán điểm kết nối dựa trên RSSI và số liệu thống kê về lớp liên kết.
Dịch vụ Wi-Fi sẽ chuyển điểm số này đến dịch vụ kết nối. Dịch vụ kết nối sẽ dùng điểm số này để xác định xem có nên kết nối với mạng Wi-Fi hay một loại mạng khác có sẵn (chẳng hạn như mạng di động) hay không.
Tắt màn hình
Khung này không bắt đầu đánh giá trên mạng đã kết nối, nhưng quy trình chọn mạng vẫn có thể xảy ra nếu các thành phần khác bắt đầu quét (ví dụ: dịch vụ vị trí). Phần mềm này đánh giá chất lượng mạng và nếu chất lượng mạng kém, phần mềm có thể chuyển vùng hoặc (cuối cùng) huỷ liên kết với mạng và đánh thức máy chủ.
Quá trình quét kết nối
Quá trình quét được thực hiện tự động dựa trên việc thiết bị có đang bật màn hình, tắt màn hình và kết nối với Wi-Fi hay tắt màn hình và không kết nối với Wi-Fi.
Màn hình bật
Khung này kích hoạt các quyết định quét theo khoảng thời gian tăng dần khi màn hình bật. Các khoảng thời gian quyết định quét được định cấu hình bằng các lớp phủ config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
và config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(là các mảng số nguyên). Theo mặc định, các hoạt động quét diễn ra bằng cách sử dụng các khoảng thời gian giảm theo hàm mũ là 20, 40, 80 và 160 giây, với các hoạt động quét tiếp theo có thể được thực hiện trong khoảng thời gian 160 giây (đây là các giá trị mặc định của những lớp phủ này).
Khoảng thời gian quét theo cơ chế tăng dần thời gian chờ được đặt lại và bắt đầu lại ở mức 20 giây bất cứ khi nào trạng thái màn hình thay đổi, tức là khi màn hình được bật hoặc tắt.
(Android 13 trở lên) Nếu cần các khoảng thời gian quét khác nhau trong thời gian chạy, thì một ứng dụng đặc quyền của OEM có thể gọi API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
để đặt lịch quét khi màn hình bật một cách linh động.
Quyết định có thực hiện hay bỏ qua quá trình quét dựa trên việc kết nối mạng hiện tại có đủ tốt để bỏ qua quá trình quét hay không. Kết nối đủ tốt để bỏ qua bước quét nếu đáp ứng bất kỳ yêu cầu nào sau đây:
- Thiết bị được kết nối với một kết nối đăng ký trực tuyến (OSU).
- Có đủ lưu lượng truy cập qua kết nối (xem ngưỡng lưu lượng truy cập bên dưới).
- RSSI cao hơn ngưỡng RSSI bắt buộc (xem ngưỡng RSSI bên dưới), và gần đây đã thực hiện lựa chọn mạng (mặc định là 10 phút nhưng có thể định cấu hình bằng lớp phủ
config_wifiConnectedHighRssiScanMinimumWindowSizeSec
), và mạng được xác thực (kết nối với Internet) hoặc người dùng phê duyệt để sử dụng mà không cần truy cập Internet.
Ngưỡng RSSI và lưu lượng truy cập là:
- RSSI lớn hơn -73 dBm đối với băng tần 2, 4 GHz, được thiết lập bằng lớp phủ
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
hoặc -70 dBm đối với băng tần 5 GHz và 6 GHz, được thiết lập bằng lớp phủconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHz
vàconfig_wifiFrameworkScoreLowRssiThreshold6ghz
. - Lưu lượng truy cập (truyền hoặc nhận) lớn hơn 16 gói mỗi giây (pps) được định cấu hình bằng lớp phủ
config_wifiFrameworkMinPacketPerSecondActiveTraffic
.
Khi thiết bị được kết nối và màn hình đang bật. Trình tính điểm được kết nối sẽ định kỳ giám sát chất lượng Wi-Fi bằng cách xem xét các tín hiệu như RSSI và số lượng gói được truyền. Nếu chất lượng Wi-Fi được xác định là kém (như được chỉ định bên dưới) và thiết bị hỗ trợ hai trạm đồng thời, thì quá trình quét sẽ được kích hoạt. Bạn có thể dùng lớp phủ config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
để định cấu hình ngưỡng điểm kích hoạt quá trình quét. Bạn có thể dùng lớp phủ config_wifiLowConnectedScoreScanPeriodSeconds
để định cấu hình khoảng thời gian của các lần quét này.
Màn hình tắt và kết nối với Wi-Fi
Khi màn hình tắt và thiết bị được kết nối với mạng Wi-Fi, phần mềm cố định (Wi-Fi SoC) sẽ thực hiện các lượt quét chuyển vùng. Khung này không thực hiện bất kỳ hoạt động quét nào khi màn hình tắt.
Màn hình tắt và không kết nối với Wi-Fi (trạng thái đã ngắt kết nối)
Khi màn hình tắt và Wi-Fi bị ngắt kết nối, chương trình cơ sở sẽ thực hiện các lượt quét PNO cho SSID. Khung này định cấu hình chương trình cơ sở bằng danh sách SSID để quét và danh sách các kênh để quét. Nếu tìm thấy một SSID đã định cấu hình, chương trình cơ sở sẽ kích hoạt khung.
Khung này cũng định cấu hình khoảng thời gian mà chương trình cơ sở sẽ thực hiện các hoạt động quét PNO, sử dụng trạng thái di động của thiết bị để chọn các khoảng thời gian quét khác nhau.
Ở trạng thái ít di chuyển (thiết bị ở trạng thái tĩnh), khoảng thời gian là 60 giây cho 3 lần quét đầu tiên (do lớp phủ config_wifiStationaryPnoScanIntervalMillis
kiểm soát) và 180 giây (hệ số nhân cố định gấp 3 lần lớp phủ) cho các lần quét tiếp theo. Ở trạng thái di động cao, khoảng thời gian là 20 giây cho 3 lần quét đầu tiên (do lớp phủ config_wifiMovingPnoScanIntervalMillis
kiểm soát) và 60 giây (hệ số nhân cố định gấp 3 lần lớp phủ) cho các lần quét tiếp theo.
Người đề cử mạng
Các đề cử viên mạng tìm hoặc tạo cấu hình (WifiConfiguration
) cho những mạng:
- Có sẵn (dựa trên kết quả quét) hoặc mạng được kết nối (đôi khi bị thiếu trong kết quả quét không ổn định).
- Có RSSI tối thiểu. RSSI tối thiểu là -80 dBm đối với băng tần 2,4 GHz và -77 dBm đối với băng tần 5 GHz và 6 GHz, có thể định cấu hình bằng lớp phủ
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
vàconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
. - Không bị chặn, chẳng hạn như do lỗi kết nối trước đó.
- Mạng không cho biết là không dùng được (ví dụ: sử dụng MBO/OCE).
- Có thể được liên kết với việc sử dụng thông tin đăng nhập có trên thiết bị.
Các đề cử mạng sau đây được sử dụng:
- Đề xuất mạng đã lưu: Đánh giá tất cả các mạng đã lưu (bao gồm cả gói thuê bao Passpoint đã lưu).
- Đề xuất tên mạng: Đánh giá tất cả các mạng do ứng dụng cung cấp bằng Suggestion API (bao gồm cả gói thuê bao Passpoint được đề xuất).
Người ghi điểm cho ứng cử viên
Người chấm điểm ứng viên đánh giá và chấm điểm cho từng ứng viên. Điểm số cho ThroughputScorer
(trình tính điểm mặc định) dựa trên những yếu tố sau:
- Điểm cơ sở được tính dựa trên RSSI, trong đó RSSI được giới hạn ở mức -73 dBm đối với băng tần 2,4 GHz hoặc -70 dBm đối với băng tần 5 GHz và 6 GHz (được định cấu hình bằng các lớp phủ
config_wifi_framework_wifi_score_low_rssi_threshold_24GHz
,config_wifi_framework_wifi_score_low_rssi_threshold_5GHz
vàconfig_wifiFrameworkScoreLowRssiThreshold6ghz
). - Mức tăng điểm được tính dựa trên ước tính về thông lượng có được từ công nghệ, tần số kênh, băng thông, RSSI, điều kiện kênh, số lượng luồng không gian tối đa và các thông số khác. Bạn có thể định cấu hình mức tăng điểm bằng cách sử dụng lớp phủ
config_wifiFrameworkThroughputBonusNumerator
vàconfig_wifiFrameworkThroughputBonusDenominator
, đồng thời mức tăng điểm bị giới hạn ở giá trị tối đa được chỉ định bằng lớp phủconfig_wifiFrameworkThroughputBonusLimit
. - Mạng đề xuất mà người dùng hoặc ứng dụng đã chọn gần đây sẽ nhận được điểm số cao hơn trong khoảng thời gian có thể định cấu hình bằng lớp phủ
config_wifiFrameworkLastSelectionMinutes
(trong khoảng thời gian đó, mạng này chắc chắn sẽ được chọn thay vì các mạng không do người dùng chọn). - Một ứng viên phù hợp với mạng hiện tại sẽ nhận được điểm số tăng lên do các lớp phủ
config_wifiFrameworkCurrentNetworkBonusMin
vàconfig_wifiFrameworkCurrentNetworkBonusPercent
định cấu hình (ứng viên đó sẽ nhận được phần thưởng bổ sung dựa trên tỷ lệ phần trăm RSSI và điểm số dựa trên thông lượng, xuống mức tối thiểu có thể định cấu hình). - Mạng bảo mật được đánh giá cao hơn mạng mở. Bạn có thể định cấu hình phần thưởng bằng lớp phủ
config_wifiFrameworkSecureNetworkBonus
. - Mạng không đo lượng dữ liệu (miễn phí) được tính điểm cao hơn mạng đo lượng dữ liệu (có tính phí).
Phần thưởng được định cấu hình bằng lớp phủ
config_wifiFrameworkUnmeteredNetworkBonus
. - Mạng đã lưu được tính điểm cao hơn mạng được đề xuất bằng Suggestion API. Phần thưởng được định cấu hình bằng lớp phủ
config_wifiFrameworkSavedNetworkBonus
. - Các mạng không đáng tin cậy (có thể được yêu cầu trong API Đề xuất) có điểm số thấp hơn bất kỳ mạng nào khác.
- Một mạng mà trước đây được phát hiện là không có Internet sẽ nhận được điểm số 0 nếu thiết bị hiện đang kết nối với một mạng khác có quyền truy cập Internet.
Phần thưởng mặc định cho lượt lưu so với lượt đề xuất và lượt không tính phí so với lượt tính phí (tức là các giá trị lớp phủ mặc định) tạo ra thứ tự ưu tiên nghiêm ngặt cho lượt lưu, lượt đề xuất, lượt tính phí và lượt không tính phí:
- Mạng không đo lượng dữ liệu đã lưu
- Mạng không đo lượng dữ liệu được đề xuất
- Mạng có đo lượng dữ liệu đã lưu
- Các mạng có đo lượng dữ liệu được đề xuất
Điều này có nghĩa là mạng không giới hạn dữ liệu (miễn phí) đã lưu luôn được chọn trước mạng giới hạn dữ liệu (có tính phí) đã lưu. Điểm thưởng được chọn gần đây (do người dùng hoặc ứng dụng chọn) có thể ghi đè mức độ ưu tiên nghiêm ngặt đó.
Khung này có thể có một số trình tính điểm đề xuất được cài đặt nhưng mỗi lần chỉ có thể kích hoạt một trình. Bạn có thể sử dụng các điểm số khác cho chỉ số (để nghiên cứu các thuật toán thay thế). Trong Android 11, trình tính điểm mặc định là ThroughputScorer
.
Chặn SSID và BSSID
Khung này có thể chặn SSID hoặc BSSID, tức là không xem xét chúng cho các kết nối tạm thời hoặc vĩnh viễn.
Chặn BSSID
Tính năng chặn BSSID hoạt động bằng cách duy trì hai bộ đếm lỗi (một bộ đếm lỗi liên tục và một bộ đếm chuỗi) cho mỗi loại lỗi cụ thể (xem bên dưới để biết danh sách các loại lỗi). Khi xảy ra lỗi:
- Bộ đếm cho loại lỗi tương ứng sẽ tăng lên.
- Nếu đạt đến ngưỡng lỗi cho loại lỗi đó:
- BSSID này đã bị chặn.
- Bộ đếm chuỗi cho lỗi sẽ tăng lên.
Thời gian chặn BSSID bắt đầu từ một giá trị cơ sở (có thể định cấu hình) (do lớp phủ config_wifiBssidBlocklistMonitorBaseBlockDurationMs
hoặc config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
chỉ định, tuỳ thuộc vào RSSI) và tăng theo cấp số nhân lên đến một giới hạn trên có thể định cấu hình (do lớp phủ config_wifiBssidBlocklistMonitorFailureStreakCap
chỉ định). Thời lượng sẽ tăng lên nếu lỗi liên tục xảy ra trên cùng một BSSID. Thời lượng là thời lượng cơ bản tăng theo cấp số nhân theo chuỗi thất bại, tức là chuỗi thất bại là 2 thì thời lượng chặn cơ bản sẽ là 4x.
Ngưỡng chặn BSSID phụ thuộc vào lý do thất bại và mỗi ngưỡng đều có thể tuỳ chỉnh bằng cách sử dụng lớp phủ:
- AP từ chối liên kết bằng MBO/OCE Không xử lý được mã STA mới:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Không xác thực được Internet thông qua mạng này:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Mã lỗi xác thực mật khẩu sai:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - Mã lỗi xác thực khi EAP không thành công cho các mạng EAP:
config_wifiBssidBlocklistMonitorEapFailureThreshold
. - Yêu cầu liên kết bị từ chối, các trường hợp từ chối liên kết chung khác:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
. - Thời gian chờ liên kết:
config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold
. - Không xác thực được, các lỗi xác thực chung khác:
config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
. - DHCP không hoạt động, không thể cung cấp DHCP:
config_wifiBssidBlocklistMonitorDhcpFailureThreshold
. - Ngắt kết nối bất thường, thiết bị đã ngắt kết nối khỏi mạng trong một khoảng thời gian rất ngắn sau khi kết nối:
config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold
. Bạn có thể định cấu hình khung thời gian bằngconfig_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs
.
Điều kiện xoá danh sách chặn BSSID
BSSID sẽ bị xoá khỏi danh sách chặn khi:
- Wi-Fi được bật/tắt: Tất cả BSSID sẽ bị xoá khỏi danh sách chặn.
- Người dùng nhấn vào một mạng trong trình chọn Wi-Fi: Tất cả BSSID của mạng do người dùng chọn sẽ bị xoá khỏi danh sách chặn.
- Thời gian chờ: Các BSSID sẽ bị xoá khỏi danh sách chặn khi hết thời gian chặn.
- Khởi động lại: Tất cả danh sách chặn đều bị xoá.
- Mạng bị xoá: Tất cả BSSID liên kết với mạng này đều bị xoá khỏi danh sách chặn.
Điều kiện đặt lại bộ đếm số lần thất bại và chuỗi thành công:
- Khởi động lại: Đặt lại cho tất cả BSSID.
- Đã xoá mạng: Đặt lại cho các BSSID được liên kết với mạng.
Kết nối L2 thành công: Đặt lại cho các mã lỗi sau.
REASON_AP_UNABLE_TO_HANDLE_NEW_STA
REASON_WRONG_PASSWORD
REASON_EAP_FAILURE
REASON_ASSOCIATION_REJECTION
REASON_ASSOCIATION_TIMEOUT
REASON_AUTHENTICATION_FAILURE
REASON_ABNORMAL_DISCONNECT
(chỉ xoá có điều kiện nếu lần gần đây nhất thiết bị kết nối với BSSID này là hơn 3 giờ trước)REASON_NONLOCAL_DISCONNECT_CONNECTING
Xác thực mạng thành công: Đặt lại cho mã lỗi sau.
REASON_NETWORK_VALIDATION_FAILURE
Cung cấp DHCP thành công: Đặt lại cho mã lỗi sau.
REASON_DHCP_FAILURE
Chặn SSID
Tính năng chặn SSID hoạt động tương tự như tính năng chặn BSSID. Bộ đếm lỗi cho mỗi loại lỗi trên mỗi mạng sẽ tăng lên khi xảy ra lỗi kết nối (thuộc loại đó).
Khi số lần thất bại của một loại cụ thể vượt quá ngưỡng, SSID sẽ bị chặn vĩnh viễn hoặc tạm thời dựa trên cấu hình. Cấu hình cho từng loại lỗi được mã hoá trong WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS
và được tóm tắt bên dưới.
* Đối với các mạng tạm thời bị vô hiệu hoá, thời gian vô hiệu hoá sẽ thay đổi linh động dựa trên số lượng lỗi kết nối liên tiếp gặp phải trên mạng. Sau khi một mạng liên tục không kết nối được 5 lần, mỗi lần không kết nối được sau đó sẽ dẫn đến thời gian vô hiệu hoá dài gấp đôi so với thời gian trước đó. Ví dụ: một mạng có 5 lần thất bại liên tiếp sẽ bị vô hiệu hoá trong 5 phút, sau đó là 10 phút cho lần thất bại thứ 6, 20 phút cho lần thất bại thứ 7, v.v. cho đến giới hạn tối đa là 18 giờ. |
||||
Mã lỗi | Mô tả | Ngưỡng | Thời lượng tắt cơ bản* | Loại vô hiệu hoá |
---|---|---|---|---|
DISABLED_DHCP_FAILURE |
Không cấp phát được DHCP | 5 | 5 phút | Tạm thời |
DISABLED_NO_INTERNET_TEMPORARY |
Xác thực mạng không thành công nhưng người dùng cho biết họ muốn tiếp tục kết nối với mạng này trong tương lai | 1 | 10 phút | Tạm thời |
DISABLED_AUTHENTICATION_NO_CREDENTIALS |
Supplicant thiếu thông tin đăng nhập để kết nối với mạng | 1 | NA | Vĩnh viễn |
DISABLED_NO_INTERNET_PERMANENT |
Mặc định cho lỗi xác thực mạng | 1 | NA | Vĩnh viễn |
DISABLED_BY_WIFI_MANAGER |
Không được dùng nữa và không được sử dụng | 1 | NA | Vĩnh viễn |
DISABLED_BY_WRONG_PASSWORD |
Mật khẩu không chính xác và mạng này chưa bao giờ kết nối thành công | 1 | NA | Vĩnh viễn |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Lỗi EAP khi thẻ SIM chưa đăng ký | 1 | NA | Vĩnh viễn |
DISABLED_ASSOCIATION_REJECTION |
Không từ chối được yêu cầu liên kết | 5 | 5 phút | Tạm thời |
DISABLED_AUTHENTICATION_FAILURE |
Các lỗi xác thực khác (tức là không phải mật khẩu sai hoặc lỗi EAP) | 5 | 5 phút | Tạm thời |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR |
Lỗi EAP (riêng tư) dành riêng cho nhà cung cấp. | 1 | NA | Vĩnh viễn |
DISABLED_NETWORK_NOT_FOUND |
Ứng dụng không tìm thấy mạng nào trong kết quả quét khớp với mạng mà khung yêu cầu kết nối (bao gồm cả các chức năng mạng). | 2 | 5 phút | Tạm thời |
DISABLED_CONSECUTIVE_FAILURES |
Mạng không kết nối được từ 5 lần trở lên liên tiếp. Loại lỗi cho những lỗi này bao gồm nhưng không giới hạn ở các loại lỗi được liệt kê trong bảng này. |
5 | 5 phút | Tạm thời |
Mạng bị vô hiệu hoá tạm thời sẽ được bật lại khi:
- Đã hết thời gian vô hiệu hoá.
- Người dùng chọn mạng để kết nối theo cách thủ công.
- Người dùng bật/tắt Wi-Fi.
- Hệ thống sẽ khởi động lại.
- Mạng bị tắt ở mức RSSI rất thấp, nhưng sau đó mạng được phát hiện lại ở mức RSSI trung bình hoặc cao hơn.
Mạng bị vô hiệu hoá vĩnh viễn sẽ được bật lại khi:
- Người dùng chọn mạng để kết nối theo cách thủ công.
Bộ đếm lỗi của một mạng sẽ được đặt lại khi:
- Mạng này sẽ bị xoá.
- Thiết bị đã kết nối thành công với mạng.
- Mạng đã được bật lại sau khi hết thời gian tắt.
- Người dùng tự chọn mạng để kết nối.
- Hệ thống sẽ khởi động lại.
Thẻ điểm
Thẻ điểm (ra mắt trong Android 10) ghi lại số liệu thống kê trên thiết bị về BSSID. Thẻ điểm được duy trì bằng cách sử dụng dịch vụ IpMemoryStore
.
Thẻ điểm không được dùng trong lựa chọn mạng Android 11.
Lựa chọn kết nối của người dùng
Android có một thuật toán lựa chọn kết nối người dùng cho phép quy trình lựa chọn ưu tiên các mạng Wi-Fi mà người dùng đã kết nối một cách rõ ràng, ví dụ: mạng gia đình. Người dùng có thể ưu tiên các mạng như vậy hơn mạng công cộng ngay cả khi hiệu suất thấp hơn mạng công cộng vì chúng cung cấp các dịch vụ bổ sung, chẳng hạn như khả năng kiểm soát các thiết bị gia đình.
Lựa chọn ưu tiên của người dùng đối với một mạng được ghi lại bằng cách đánh dấu tất cả các cấu hình Wi-Fi hiển thị và cường độ tín hiệu của chúng tại thời điểm người dùng chọn một mạng. Nếu một trong các cấu hình Wi-Fi được đánh dấu được chọn trong quá trình chọn tự động và có mạng do người dùng chọn, thì thuật toán lựa chọn kết nối của người dùng sẽ ghi đè lựa chọn bằng mạng do người dùng chọn nếu đáp ứng các điều kiện sau:
- Mạng mà người dùng chọn kết nối có quyền truy cập vào Internet vào lần gần đây nhất được sử dụng
- Lựa chọn kết nối của người dùng có cường độ tín hiệu không tệ hơn so với khi lựa chọn đó được chọn ban đầu với sai số. Bạn có thể định cấu hình sai số này bằng cách sử dụng lớp phủ
config_wifiEstimateRssiErrorMarginDb
.
Lựa chọn mạng kết nối của người dùng vẫn được lưu giữ sau khi khởi động lại. Lựa chọn kết nối của người dùng áp dụng cho các mạng đã lưu, mạng Passpoint và mạng được đề xuất.
Hai trạm sạc đồng thời
Phần này mô tả cách chọn mạng Wi-Fi khi một thiết bị hỗ trợ kết nối đồng thời với 2 mạng Wi-Fi.
Make-before-break
Nếu chức năng make-before-break được bật, thiết bị sẽ cố gắng kết nối với mạng mới trước khi ngắt kết nối với mạng cũ. Quy trình tạo trước khi ngắt sử dụng cùng một thuật toán chọn mạng như chuyển đổi mạng ngắt trước khi tạo (tức là khi thiết bị ngắt kết nối khỏi mạng cũ trước khi kết nối với mạng mới). Nếu thuật toán chọn mạng chọn một mạng không thể chuyển đổi bằng cách sử dụng phương thức tạo trước khi ngắt, thì thiết bị sẽ tự động quay lại phương thức ngắt trước khi tạo.
Đồng thời hạn chế và kết nối Internet
Nếu bạn bật chức năng kết nối đồng thời với mạng bị hạn chế và Internet, thì thiết bị có thể kết nối với một mạng Wi-Fi bị hạn chế thứ cấp. Mạng này chỉ dành cho một số ứng dụng do nhà sản xuất thiết bị định cấu hình. Hướng dẫn cho nhà sản xuất thiết bị về cách định cấu hình tính năng này có trong phần Kết nối Internet và chế độ hạn chế đồng thời.
Khi thuật toán chọn mạng phát hiện thấy kết quả quét phù hợp với đề xuất riêng tư hoặc có tính phí của OEM, thuật toán sẽ tự động kết nối với kết quả đó dưới dạng mạng thứ hai. Việc chọn mạng cho mạng Wi-Fi chính (cung cấp kết nối Internet cho các ứng dụng thông thường) diễn ra song song như bình thường.
Câu hỏi thường gặp (FAQ)
Mạng bảo mật có luôn được ưu tiên hơn mạng mở không?
Không. Mạng đã lưu so với mạng được đề xuất và mạng có đo lượng dữ liệu so với mạng không đo lượng dữ liệu là các danh mục chính để đánh giá mạng. Trong mỗi danh mục, các mạng bảo mật có mức độ ưu tiên cao hơn các mạng mở, nhưng chất lượng kết nối được ưu tiên hơn nhiều.
Lý do là tính bảo mật dữ liệu thực tế của người dùng được cung cấp bằng phương thức mã hoá đầu cuối (ví dụ: TLS). Mạng an toàn chỉ mã hoá chặng đầu tiên của quá trình giao tiếp, và ngay cả khi đó là các mạng có khoá dùng chung, thì cũng không đảm bảo được quyền riêng tư.
Tại sao các mạng đã lưu được ưu tiên hơn các mạng được đề xuất?
Các mạng miễn phí (không đo lượng dữ liệu) đã lưu được ưu tiên hơn các mạng miễn phí được đề xuất và các mạng có đo lượng dữ liệu đã lưu được ưu tiên hơn các mạng có đo lượng dữ liệu được đề xuất.
Các mạng đã lưu được ưu tiên hơn các mạng được đề xuất vì mạng đã lưu là mạng mà người dùng đã thêm rõ ràng vào thiết bị. Điều đó có nghĩa là bạn ưu tiên kết nối với các mạng này khi có thể.
Xin lưu ý rằng người dùng có thể tắt hành vi tự động kết nối cho từng mạng đã lưu riêng lẻ, tức là cho biết rằng chỉ được sử dụng các mạng này theo cách thủ công và thiết bị không tự động xem xét các mạng này.
Tôi có thể thay đổi thứ tự ưu tiên nghiêm ngặt hoặc xoá hoàn toàn thứ tự này không?
Nhà sản xuất thiết bị có thể sửa đổi các quyết định chọn mạng bằng cách sửa đổi các lớp phủ bonus được liệt kê trong các phần trên. Tuy nhiên, bạn không nên thay đổi các giá trị mặc định vì chúng đã được chọn sau khi cân nhắc kỹ lưỡng nhiều trường hợp sử dụng.