Trang này trình bày các thuật toán và quy trình 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 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 quá trình 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 lượt quét này cũng có thể được kích hoạt bởi các thành phần hệ thống khác, 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 về khả năng kết nối Android gặp vấn đề quét định kỳ theo lịch thời gian đợi luỹ thừa. 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.
- Màn hình tắt (đã ngắt kết nối): CPU của máy chủ lập trình phần mềm với danh sách các mạng ưu tiên bằng cách sử dụng tính năng quét tải mạng ưu tiên (PNO) ngay khi màn hình tắt. Phần mềm sẽ đánh thức máy chủ 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 hạn chế (ví dụ: thiết bị không phải thiết bị di động, được định cấu hình trước).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ì hệ thống sẽ không quét khả năng kết nối và kết quả quét sẽ 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, nghĩa là quá trình quét khả năng kết nối và lựa chọn mạng vẫn diễn ra.Đánh giá kết quả quét.
Nếu thiết bị được kết nối với mạng Wi-Fi, khung này sẽ đánh giá xem mạng hiện tại có đủ tốt để bỏ qua lựa 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:
- Chưa đến 10 giây kể từ lần chọn mạng gần đây nhất.
- Người dùng gần đây đã kết nố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 kết nối đăng ký trực tuyến (OSU).
Đáp ứng tất cả các yêu cầu sau:
- RSSI vượt quá ngưỡng RSSI bắt buộc hoặc có đủ lưu lượng truy cập đang lưu chuyển qua kết nối (xem phần quét màn hình để biết RSSI và ngưỡng lưu lượng truy cập).
- Mạng đượ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 Internet.
- Mạng không tính dữ liệu.
Nếu mạng đủ tốt để bỏ qua lựa chọn mạng, thì bạn không cần làm gì thêm.
Nếu mạng Wi-Fi đã kết nối không đủ tốt hoặc nếu thiết bị không kết nối với mạng, thì khung này sẽ gọi trình đề cử 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 chỉ định mạng sẽ tìm 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 để xoá các BSSID có RSSI thấp hơn RSSI mục nhập (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ỗi kết nối lặp lại, ngắt kết nối thường xuyên và các yêu cầu rõ ràng từ AP về việc 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ả dưới đây trong phần Chặn SSID và BSSID.Khi thiết bị di chuyển nhanh chóng, kết quả quét có thể được lọc thêm để xoá BSSID có RSSI thay đổi nhanh chóng (dấu hiệu cho thấy chúng không di chuyển cùng với thiết bị). Bạn có thể định cấu hình tính năng tối ưu hoá này bằng cách sử dụng
config_wifiHighMovementNetworkSelectionOptimizationEnabled
(bật/tắt tính năng tối ưu hoá) và lớp phủconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMs
vàconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta
. Các lớp phủ này sẽ định cấu hình yêu cầu về độ ổn định trên kết quả quét (thay đổi RSSI trên kết quả quét được tách biệt đủ thời gian).
Khung này chạy trình tính điểm đề xuất để tạo điểm cho từng đề xuất bộ định danh thiết lập dịch vụ (SSID). Các đề xuất SSID có thể bao gồm nhiều đề xuất mã nhận dạng bộ dịch vụ cơ bản (BSSID) (do trình đề cử mạng tạo). Ứng cử viên chiến thắng là ứng cử viên có điểm số cao nhất.
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ột mạng do người dùng chọn trở thành đề xuất chiến thắng mới thay vì sử dụng đề xuất chiến thắng từ trình tính điểm đề xuất.
Khung này xác định xem đề xuất chiến thắng có khớp với mạng đang kết nối hay không. Để được coi là 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 đã kết nối có cùng BSSID.
- Nếu có tính năng chuyển vùng qua phần mềm (bao gồm cả khả năng đưa vào danh sách đen BSSID), thì đề xuất 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 được kết nối, thì bạn không cần làm gì thêm. Nếu đề xuất chiến thắng không khớp với mạng, thì thiết bị sẽ được liên kết với đề xuất chiến thắng.
Xin lưu ý rằng tính năng kết nối mạng tự động sẽ bị tắt 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 các thiết bị hỗ trợ hai trạm đồng thời.
Đánh giá mạng đã kết nối
Khung Android hoặc phần mềm cơ sở đị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 đã kết nối được đánh giá khi màn hình bật hoặc tắt.
Quá trình đánh giá này được thực hiện ngoài lựa chọn mạng discussed above.
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ò ý kiến về RSSI và số liệu thống kê về lớp liên kết 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ò ý kiến sẽ thay đổi linh động dựa trên trạng thái di chuyển của thiết bị và RSSI.- Khoảng thời gian thăm dò ý kiến đượ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ị đứng yên và RSSI cao 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 được giảm trở lại 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 thấp hơn -73 dBm (do lớp phủconfig_wifiClientRssiMonitorThresholdDbm
định cấu hình).
- Khoảng thời gian thăm dò ý kiến đượ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 số kết nối dựa trên RSSI và thống kê 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ụ này sử dụng điểm số này để xác định xem nên kết nối với mạng Wi-Fi hay với một loại mạng khác có sẵn, chẳng hạn như mạng di động.
Màn hình đang tắt
Khung này không bắt đầu quá trình đánh giá trên mạng đã kết nối, nhưng quá trình chọn mạng vẫn có thể xảy ra nếu các thành phần khác (ví dụ: dịch vụ vị trí) bắt đầu quá trình quét. Bộ firmware đánh giá chất lượng mạng và nếu chất lượng mạng kém, bộ firmware 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ét khả năng kết nối
Quá trình quét được thực hiện tự động dựa trên việc màn hình thiết bị đang bật, tắt và có kết nối Wi-Fi hay không.
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. Khoảng thời gian quyết định quét được định cấu hình bằng lớp phủ config_wifiDisconnectedScanIntervalScheduleSec
, config_wifiConnectedScanIntervalScheduleSec
và config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec
(là các mảng số nguyên). Theo mặc định, các lần quét sẽ diễn ra bằng cách sử dụng các khoảng thời gian đợi luỹ thừa là 20, 40, 80 và 160 giây, với các lần quét tiếp theo có thể được thực hiện ở khoảng thời gian 160 giây (đây là các giá trị mặc định của các lớp phủ này).
Khoảng thời gian quét thời gian đợi luỹ thừa được đặt lại và bắt đầu lại sau 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ì ứng dụng đặc quyền của nhà sản xuất thiết bị gốc (OEM) có thể gọi API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule)
để tự động đặt lịch quét khi màn hình bật.
Quyết định thực thi 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. Một kết nối đủ tốt để bỏ qua việ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).
- Lưu lượng truy cập đủ lớn đang chảy 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 các ngưỡng RSSI bên dưới), và lựa chọn mạng đã được thực hiện gần đây (10 phút theo mặc định nhưng có thể được đị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 được người dùng phê duyệt để sử dụng mà không cần truy cập Internet.
RSSI và ngưỡng lưu lượng truy cập là:
- RSSI cao hơn -73 dBm đối với băng tần 2,4 GHz, được định cấu hình 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 định cấu hình 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) trê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 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ể sử dụng lớp phủ config_wifiLowConnectedScoreThresholdToTriggerScanForMbb
để định cấu hình ngưỡng điểm sẽ kích hoạt quá trình quét. Bạn có thể sử 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, chương trình cơ sở (SoC Wi-Fi) sẽ thực hiện quét chuyển vùng. Khung này không thực hiện bất kỳ quy trình 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 quét PNO để tìm SSID. Khung này định cấu hình phần mềm với danh sách SSID cần quét và danh sách kênh cần quét. Nếu tìm thấy SSID đã định cấu hình, chương trình cơ sở sẽ đánh thức khung.
Khung này cũng định cấu hình khoảng thời gian chương trình cơ sở thực hiện quét PNO, dựa trên trạng thái di động của thiết bị để chọn nhiều khoảng thời gian quét.
Ở trạng thái di chuyển thấp (thiết bị đứng yên), 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 3 lần của lớp phủ) cho các lần quét tiếp theo. Ở trạng thái di chuyển 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ố cố định 3x của lớp phủ) cho các lần quét tiếp theo.
Người đề cử mạng
Người đề cử mạng tìm hoặc tạo cấu hình (WifiConfiguration
) cho các mạng:
- Hiện có (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 không thể sử dụng (ví dụ: sử dụng MBO/OCE).
- Có thể liên kết với việc sử dụng thông tin xác thực có trên thiết bị.
Chúng tôi sử dụng các đề cử viên mạng sau:
- Đối tượng chỉ định 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 chỉ định mạng: Đánh giá tất cả các mạng do ứng dụng cung cấp bằng cách sử dụng Suggestion API (bao gồm cả gói thuê bao Passpoint được đề xuất).
- Đối tượng chỉ định mạng được tính điểm bên ngoài: Cơ chế OEM để cung cấp các tuỳ chọn kết nối mạng cho thiết bị. Để biết thêm thông tin, hãy xem phần Trình cung cấp điểm xếp hạng mạng bên ngoài.
Trình tạo điểm số đề xuất
Trình tính điểm cho ứng viên sẽ đánh giá và cung cấp đ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 bị giới hạn ở mức -73 dBm cho băng tần 2,4 GHz hoặc -70 dBm cho 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 số được tính dựa trên thông lượng ước tính có được từ công nghệ, tần suất kênh, băng thông, RSSI, điều kiện kênh, số luồng không gian tối đa và các tham số khác. Bạn có thể định cấu hình mức tăng điểm số bằng cách sử dụng các lớp phủ
config_wifiFrameworkThroughputBonusNumerator
vàconfig_wifiFrameworkThroughputBonusDenominator
, đồng thời giới hạn ở giá trị tối đa được chỉ định bằng lớp phủconfig_wifiFrameworkThroughputBonusLimit
. - Một 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ố tăng lên đáng kể trong một 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 đó được đảm bảo sẽ được chọn thay vì các mạng không do người dùng chọn). - Một đề xuất phù hợp với mạng hiện tại sẽ được tăng điểm do lớp phủ
config_wifiFrameworkCurrentNetworkBonusMin
vàconfig_wifiFrameworkCurrentNetworkBonusPercent
định cấu hình (đề xuất này sẽ nhận được một khoản tiền thưởng bổ sung dựa trên tỷ lệ phần trăm RSSI và điểm dựa trên tốc độ truyền, xuống đến mức tối thiểu có thể định cấu hình). - Mạng bảo mật được chấm điểm cao hơn mạng mở. Phần thưởng được định cấu hình 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 có đ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 API Đề xuất. 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 như một phần của API đề xuất) sẽ có điểm số thấp hơn bất kỳ mạng nào khác.
- Một mạng 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.
Mức thưởng mặc định cho quảng cáo đã lưu so với quảng cáo đề xuất và quảng cáo không đo lượng dữ liệu so với quảng cáo đo lượng dữ liệu (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 quảng cáo đã lưu, quảng cáo đề xuất, quảng cáo đo lượng dữ liệu và quảng cáo không đo lượng dữ liệu:
- Mạng không đo lượng dữ liệu đã lưu
- Các mạng không đo lượng dữ liệu được đề xuất
- Mạng có đo lượng dữ liệu đã lưu
- Mạng có đo lượng dữ liệu được đề xuất
Điều này có nghĩa là mạng không đo lượng dữ liệu (miễn phí) đã lưu luôn được chọn trước mạng đo lượng dữ liệu (có tính phí) đã lưu. Điểm thưởng được chọn gần đây (bởi người dùng hoặc ứng dụng) có thể ghi đè mức độ ưu tiên nghiêm ngặt đó.
Khung này có thể cài đặt một số bộ tính điểm đề xuất nhưng chỉ có một bộ tính điểm hoạt động tại một thời điểm. Bạn có thể sử dụng các trình chấm điểm khác cho các chỉ số (để điều tra 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 các SSID hoặc BSSID đó để 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ì 2 bộ đếm lỗi, một bộ đếm lỗi liên tục và một bộ đếm số lần lỗi, mỗi loại lỗi cụ thể (xem danh sách các loại lỗi cụ thể ở bên dưới). Khi xảy ra lỗi:
- Bộ đếm cho loại lỗi tương ứng sẽ được tăng lên.
- Nếu đạt đến ngưỡng lỗi cho loại lỗi đó:
- BSSID bị chặn.
- Bộ đếm chuỗi cho lần thất bại được tăng lên.
Thời lượng 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 liên tục xảy ra lỗi trên cùng một BSSID. Thời lượng là thời lượng cơ sở tăng theo cấp số nhân theo số lần lỗi, tức là số lần lỗi là 2 có nghĩa là thời lượng chặn cơ sở là 4 lần.
Các ngưỡng chặn BSSID phụ thuộc vào lý do không thành công và mỗi ngưỡng có thể được tuỳ chỉnh bằng lớp phủ:
- AP từ chối liên kết bằng mã MBO/OCE Không thể xử lý STA mới:
config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
. - Không xác thực được Internet qua mạng này:
config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
. - Mã lỗi xác thực mật khẩu không chính xác:
config_wifiBssidBlocklistMonitorWrongPasswordThreshold
. - Mã lỗi xác thực không thành công EAP cho mạng EAP:
config_wifiBssidBlocklistMonitorEapFailureThreshold
. - Từ chối liên kết, từ chối liên kết chung khác:
config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
. - Hết thời gian 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
. - Lỗi DHCP, không thể 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 cửa sổ 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 đã 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 bộ chọn Wi-Fi: Tất cả BSSID của mạng mà người dùng đã chọn sẽ bị xoá khỏi danh sách chặn.
- Hết thời gian chờ: BSSID sẽ bị xoá khỏi danh sách chặn khi thời lượng chặn đạt đến.
- Khởi động lại: Tất cả danh sách chặn đều bị xoá.
- Đã xoá mạng: Tất cả các BSSID liên kết với mạng này đều sẽ 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à số lần thắng liên tiếp:
- Khởi động lại: Đặt lại cho tất cả BSSID.
- Mạng đã bị xoá: Đặt lại cho các BSSID 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 nhất thiết bị kết nối với BSSID này cách đây hơn 3 giờ)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 (của loại đó).
Khi số lần lỗ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 bị tạm thời vô hiệu hoá, thời lượng vô hiệu hoá sẽ thay đổi linh động dựa trên số lần liên tiếp xảy ra lỗi kết nối trên mạng. Sau khi một mạng không kết nối được 5 lần liên tiếp, mỗi lỗi tiếp theo sẽ dẫn đến khoảng thời gian vô hiệu hoá cao gấp đôi thời lượng trước đó. Ví dụ: một mạng có 5 lỗi liên tiếp sẽ bị vô hiệu hoá trong 5 phút, sau đó là 10 phút nếu lỗi thứ sáu, 20 phút nếu lỗi thứ bảy và cứ tiếp tục như vậy đến giới hạn tối đa là 18 giờ. |
||||
Mã lỗi | Mô tả | Ngưỡng | Khoảng thời gian vô hiệu hoá cơ sở* | Loại chế độ tắt |
---|---|---|---|---|
DISABLED_DHCP_FAILURE |
Không cung cấp được DHCP | 5 | 5 phút | Tạm thời |
DISABLED_NO_INTERNET_TEMPORARY |
Không xác thực được mạ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 xác thực để 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 dùng nữa và không dùng đến | 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 không được đăng ký | 1 | NA | Vĩnh viễn |
DISABLED_ASSOCIATION_REJECTION |
Lỗi từ chối 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 lỗ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 |
Trình yêu cầu 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 liên tiếp 5 lần trở lên. Loại lỗi cho các 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 tạm thời bị tắt sẽ được bật lại khi:
- Thời gian vô hiệu hoá đã hết.
- 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 lại được phát hiện ở mức RSSI trung bình trở lê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 cho một mạng sẽ được đặt lại khi:
- Mạng đã 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 vô hiệu hoá.
- Người dùng tự chọn mạng cần kết nối.
- Hệ thống sẽ khởi động lại.
Thẻ điểm
Thẻ điểm, được giới thiệu trong Android 10, ghi lại số liệu thống kê trên thiết bị về BSSID. Thẻ điểm được lưu trữ bằng dịch vụ IpMemoryStore
.
Thẻ điểm không được dùng khi lựa chọn mạng cho Android 11.
Lựa chọn kết nối của người dùng
Android có thuật toán lựa chọn kết nối của 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ì các mạng đó cung cấp các dịch vụ bổ sung như khả năng kiểm soát thiết bị gia đình.
Hệ thống sẽ ghi lại lựa chọn ưu tiên của người dùng đối với một mạng bằng cách đánh dấu tất cả cấu hình Wi-Fi hiển thị và cường độ tín hiệu của các cấu hình đó 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 Internet vào lần gần đây nhất người dùng sử dụng mạng đó
- Lựa chọn kết nối của người dùng có cường độ tín hiệu không kém hơn so với khi được chọn ban đầu với một biên độ lỗi. Bạn có thể định cấu hình khoảng chênh lệch lỗi này bằng cách sử dụng lớp phủ
config_wifiEstimateRssiErrorMarginDb
.
Mạng mà người dùng chọn kết nối vẫn tồn tại sau khi khởi động lại. Lựa chọn kết nối của người dùng hoạt động với các mạng đã lưu, mạng Passpoint và mạng đề xuất.
Hai đài phát đồ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 hai mạng Wi-Fi.
Tạo trước khi ngắt
Nếu bạn bật chức năng tạo trước khi ngắ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 ngắt kết nối sử dụng cùng một thuật toán chọn mạng như khi chuyển đổi mạng trước khi ngắt (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 lựa 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 chuyển về phương thức ngắt trước khi tạo.
Kết nối Internet và hạn chế đồng thời
Nếu bạn bật chức năng kết nối Internet và kết nối bị hạn chế đồng thời, thiết bị có thể kết nối với một mạng Wi-Fi bị hạn chế phụ 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ị để định cấu hình chế độ này có trong phần Kết nối Internet và bị hạn chế đồng thời.
Khi thuật toán lựa chọn mạng phát hiện kết quả quét khớp với đề xuất riêng tư hoặc có tính phí của OEM, thuật toán này sẽ tự động kết nối với đề xuất đó dưới dạng mạng thứ hai. Quá trình lựa 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) sẽ diễn ra song song như thường lệ.
Câu hỏi thường gặp
Mạng an toàn có phải luôn được ưu tiên hơn mạng mở không?
Không. Danh mục đã lưu so với được đề xuất và có đo lượng dữ liệu so với không đo lượng dữ liệu là danh mục chính mà các mạng được đánh giá. Trong mỗi danh mục, mạng bảo mật có một số mức độ ưu tiên hơn so với mạng mở, nhưng chất lượng kết nối được ưu tiên nhiều hơn.
Lý do là tính năng bảo mật dữ liệu người dùng thực tế được cung cấp bằng phương thức mã hoá đầu cuối (ví dụ: TLS). Các mạng bảo mật chỉ mã hoá chặn giao tiếp đầu tiên, và ngay cả đối với các mạng có khoá dùng chung trước, cũng không mang lại nhiều quyền riêng tư.
Tại sao mạng đã lưu được ưu tiên hơn 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.
Mạng đã lưu sẽ được ưu tiên hơn mạng đề xuất vì mạng đã lưu là các mạng mà người dùng đã thêm vào thiết bị một cách rõ ràng. Điều đó hàm ý rằng bạn nê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, tức là cho biết rằng các mạng này chỉ được sử dụng theo cách thủ công và không được thiết bị tự động xem xét.
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 lựa chọn mạng bằng cách sửa đổi các lớp phủ tiền thưởng đượ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ì các giá trị này đã được chọn sau khi xem xét kỹ lưỡng nhiều trường hợp sử dụng.