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ả cách một thiết bị chạy Android đánh giá và kết nối với các mạng Wi-Fi có sẵn.
Thiết bị sẽ quét 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 hoạt động 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 kết nối Android sẽ phát hành các lệnh quét định kỳ theo lịch trình giảm dần theo hàm mũ. 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 phù hợp nhất để kết nối.
- Tắt màn hình (đã ngắt kết nối): CPU máy chủ sẽ 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ượt 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ủ nếu tìm thấy bất kỳ mạng ưu tiên nào. AOSP giả định rằng thiết bị có hỗ trợ PNO.
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 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 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ột mạng Wi-Fi, 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 bước 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:
- Chỉ báo cường độ tín hiệu nhận được (RSSI) lớn 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 quá trình quét khi màn hình bật để biết ngưỡng RSSI và 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 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ị không 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ác 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 nhỏ hơn RSSI của mục nhập (có thể định cấu hình bằng các lớp phủ
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz,config_wifi_framework_wifi_score_entry_rssi_threshold_5GHzvà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 thấy 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 hoặc tắt chế độ tối ưu hoá) và các lớp phủconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMsvà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 mỗi đề xuất SSID. Các SSID đề xuất có thể bao gồm nhiều BSSID đề xuất (do các đề xuất mạng tạo). Ứ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 viên chiến thắng có khớp với mạng được 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 phần sụn (bao gồm cả khả năng chặn BSSID), thì ứng cử viên chiến thắng và mạng được kết nối sẽ có cùng SSID và loại bảo mật.
Nếu đề xuất chiến thắng khớp với mạng được kết nối, thì không có hành động nào khác được thực hiện. Nếu ứng viên chiến thắng không khớp với mạng, thì thiết bị sẽ liên kết với ứng viên chiến thắng.
Đá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 lựa chọn mạng được thảo luận trong các phần trước.
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 các lớp phủconfig_wifiClientRssiMonitorThresholdDbmvàconfig_wifiClientRssiMonitorHysteresisDbđịnh cấu hình). - Khoảng thời gian thăm dò ý kiến được 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 nhỏ hơn -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 có sẵn khác, 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 sẽ đá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, có đang tắt màn hình và kết nối với Wi-Fi hay có đang tắt màn hình và không kết nối vớ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. 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 thông qua kết nối (xem ngưỡng lưu lượng truy cập sau).
- RSSI lớn hơn ngưỡng RSSI bắt buộc (xem ngưỡng RSSI sau), 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 định cấu hình bằng lớp phủ
config_wifi_framework_wifi_score_low_rssi_threshold_24GHzhoặ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_5GHzvà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, mộ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 sau), thì quá trình quét sẽ được kích hoạt nếu thiết bị hỗ trợ hai trạm đồng thời. 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, thì 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 di động thấp (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_5GHzvà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_5GHzvà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 tối đa các luồng không gian 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_wifiFrameworkThroughputBonusNumeratorvà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 ứng cử viên 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 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 xác minh là được chọn so với 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_wifiFrameworkCurrentNetworkBonusMinvà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ở. 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 đ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 không có Internet (đã được phát hiện trước đó) sẽ nhận được điểm số là 0 nếu thiết bị được 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 nội dung đã lưu so với nội dung đề xuất và nội dung không giới hạn so với nội dung có giới hạn (tức là các giá trị mặc định của lớp phủ) tạo ra thứ tự ưu tiên nghiêm ngặt cho nội dung đã lưu, nội dung đề xuất, nội dung có giới hạn và nội dung không giới hạn:
- 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 chỉ có một trình có thể hoạt động tại một thời điểm. Bạn có thể dùng các điểm số khác cho 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à khung sẽ không xem xét các SSID hoặc BSSID này 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ì 2 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 danh sách các loại lỗi ở phần sau). 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 lượng chặn BSSID bắt đầu từ một giá trị cơ sở có thể định cấu hình. Giá trị cơ sở này được chỉ định bằng lớp phủ config_wifiBssidBlocklistMonitorBaseBlockDurationMs hoặc config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs, tuỳ thuộc vào RSSI. Sau đó, thời lượng sẽ tăng theo cấp số nhân cho đến khi đạt đến 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ơ sở tăng theo cấp số nhân theo chuỗi thất bại; ví dụ: chuỗi thất bại là 2 thì thời lượng chặn cơ sở sẽ tăng gấp 4 lần.
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:
- Khi bạn bật/tắt Wi-Fi, tất cả BSSID sẽ bị xoá khỏi danh sách chặn.
- Khi 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.
- Khi hết thời gian chặn (hết thời gian chờ), BSSID sẽ bị xoá khỏi danh sách chặn.
- Khi hệ thống khởi động lại, tất cả danh sách chặn sẽ bị xoá.
- Khi một mạng bị xoá, tất cả BSSID liên kết với mạng đó 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à chuỗi thành công:
- Khi hệ thống khởi động lại, các bộ đếm sẽ được đặt lại cho tất cả BSSID.
- Khi một mạng bị xoá, các bộ đếm sẽ được đặt lại cho các BSSID được liên kết với mạng đó.
Khi kết nối L2 thành công, các bộ đếm sẽ được đặt lại cho các mã lỗi sau:
REASON_AP_UNABLE_TO_HANDLE_NEW_STAREASON_WRONG_PASSWORDREASON_EAP_FAILUREREASON_ASSOCIATION_REJECTIONREASON_ASSOCIATION_TIMEOUTREASON_AUTHENTICATION_FAILUREREASON_ABNORMAL_DISCONNECT(chỉ được xoá có điều kiện nếu lần cuối cùng thiết bị kết nối với BSSID này là hơn 3 giờ trước)REASON_NONLOCAL_DISCONNECT_CONNECTING
Khi quá trình xác thực mạng thành công, các bộ đếm sẽ được đặt lại cho mã lỗi sau:
REASON_NETWORK_VALIDATION_FAILURE
Khi quá trình cấp phát DHCP thành công, các bộ đếm sẽ được đặ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 trong bảng sau.
|
* Đố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 | Không áp dụng | Vĩnh viễn |
DISABLED_NO_INTERNET_PERMANENT |
Mặc định cho lỗi xác thực mạng | 1 | Không áp dụng | Vĩnh viễn |
DISABLED_BY_WIFI_MANAGER |
Không được dùng nữa và không được sử dụng | 1 | Không áp dụng | 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 | Không áp dụng | Vĩnh viễn |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION |
Lỗi EAP khi thẻ SIM không được đăng ký | 1 | Không áp dụng | Vĩnh viễn |
DISABLED_ASSOCIATION_REJECTION |
Lỗi từ chối 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 | Không áp dụng | 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:
- 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ị vô hiệu hoá ở 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 chọn mạng để kết nối theo cách thủ công.
- 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 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, chẳng hạn như 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 một sai số. Bạn có thể định cấu hình sai số này bằ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 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 kết nối sử dụng cùng một thuật toán chọn mạng như quy trình ngắt kết nối trước khi tạo kết nối mạng (tức là khi thiết bị ngắt kết nối vớ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 Internet và mạng bị hạn chế đồng thời, 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ỉ có sẵn 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à bị 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 đề xuất có trả 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 sẽ có mức độ ưu tiên cao hơn các mạng mở, nhưng chất lượng kết nối sẽ đượ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á hai đầu (ví dụ: TLS). Mạng bảo mật chỉ mã hoá chặng đầu tiên của quá trình giao tiếp, và ngay cả khi đó, đối với các mạng có khoá dùng chung, chúng không mang lại nhiều 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ì đây là những mạng mà người dùng đã thêm rõ ràng vào thiết bị. Điều đó ngụ ý rằng bạn ưu tiên kết nối với những 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à họ có thể 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 được 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?
Bạn có thể sửa đổi các quyết định chọn mạng bằng cách sửa đổi lớp phủ tiền thưởng được liệt kê trong các phần trước. 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.