Lựa chọn mạng Wi-Fi Android

Trang này trình bày các thuật toán và quy trình được sử 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 được kết nối và đánh giá chất lượng của các mạng có sẵn.

Tuổi thọ của kết nối tự động

Phần này mô tả quy trình cách thiết bị Android đánh giá và kết nối với các mạng Wi-Fi khả dụng.

  1. Thiết bị quét các mạng khả dụng theo một trong các cách sau đây tùy 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 định nghĩa trong quét trên màn hình ). Nếu kết nối không đủ tốt để bỏ qua quá trình quét, hệ thống con kết nối sẽ kích hoạt quá trình quét để phát hiện các mạng khả dụng. Các quá trình 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 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 đưa ra các bản quét định kỳ theo lịch trình lùi theo cấp số nhân. Mô-đun đánh giá tất cả cá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 chủ lập trình chương trình cơ sở với danh sách các mạng được ưu tiên sử dụng tính năng giảm tải mạng ưa thích (PNO) sẽ quét ngay khi màn hình tắt. Phần sụn đánh thức máy chủ lưu trữ nếu nó tìm thấy bất kỳ mạng nào được ưu tiên. AOSP giả định rằng PNO được hỗ trợ trên thiết bị.

    Phương thức WifiManager#allowAutojoinGlobal(boolean) có thể được sử dụng để tắt các kết nối tự động. Đây là một API đặc quyền có thể được sử dụng bởi các nhà sản xuất thiết bị trong một số trường hợp hạn chế (ví dụ: thiết bị không di động, được 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ành false , thì sẽ không có quá trình 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. Cài đặt này không có hiệu lực khi thiết bị bị ngắt kết nối, có nghĩa là quá trình quét kết nối và lựa chọn mạng vẫn diễn ra.

  2. Kết quả quét được đánh giá.

    • Nếu thiết bị được kết nối với mạng Wi-Fi, khung 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 đầy 10 giây trôi qua kể từ lần chọn mạng cuối cùng.
      • Người dùng gần đây đã kết nối thủ công với mạng (nơi gần đây có thể định cấu hình bằng cách sử dụ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).
      • Tất cả các yêu cầu sau đều được đáp ứng:

        • RSSI vượt quá ngưỡng RSSI yêu cầu hoặc đủ lưu lượng đang chạy qua kết nối (xem quét trên màn hình để biết RSSI và ngưỡng lưu lượng).
        • Mạng được xác thực (kết nối với internet) hoặc được người dùng chấp thuận để sử dụng mà không cần truy cập internet.
        • Mạng không bị đo.
    • Nếu mạng đủ tốt để bỏ qua lựa chọn mạng , bạn không cần thực hiện thêm hành động nào.

    • Nếu mạng Wi-Fi được kết nối không đủ tốt hoặc nếu thiết bị không được kết nối với mạng, khuôn khổ sẽ gọi các đề cử mạng để tạo danh sách các mạng Wi-Fi ứng viên để kết nối dựa trên kết quả quét đã lọc . Các nhà đề cử mạng tìm 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 ứng viên.

    • Kết quả quét được lọc để loại bỏ các BSSID có RSSI bên dưới RSSI mục nhập (có thể định cấu hình bằng config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHzconfig_wifiFrameworkScoreEntryRssiThreshold6ghz ). Ngoài ra, các BSSID bị chặn sẽ được lọc. BSSID có thể bị chặn dựa trên lỗi kết nối lặp lại, ngắt kết nối thường xuyên và 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). Chặn BSSID được mô tả bên dưới trong phần chặn SSID và BSSID .

    • Khi thiết bị di chuyển nhanh, kết quả quét được tùy chọn lọc thêm để loại bỏ các 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ị). Tối ưu hóa này có thể được định cấu hình bằng cách sử dụng config_wifiHighMovementNetworkSelectionOptimizationEnabled (bật / tắt tính năng tối ưu hóa) và config_wifiHighMovementNetworkSelectionOptimizationScanDelayMsconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta được phân tách đầy đủ trên các lớp quét thời gian quétssiDSI, dẫn đến kết quả là định cấu hình yêu cầu về độ ổn định trên các lớp quét thời gian được phân tách đầy đủ.

  3. Khung chạy trình chấm điểm ứng cử viên để tạo ra điểm số cho từng ứng viên số nhận dạng bộ dịch vụ (SSID). Các ứng cử viên SSID có thể bao gồm nhiều ứng cử viên số nhận dạng bộ dịch vụ cơ bản (BSSID) (được tạo bởi các đơn vị đề cử mạng). Thí sinh đạt điểm cao nhất là thí sinh chiến thắng .

  4. Khung thực thi thuật toán lựa chọn kết nối người dùng , có thể làm cho mạng do người dùng lựa chọn trở thành ứng cử viên chiến thắng mới thay vì sử dụng ứng viên chiến thắng từ người chấm điểm ứng cử viên.

  5. Khung xác định xem ứng cử viên chiến thắng có phù hợp với mạng hiện đang được kết nối hay không. Để được coi là một trận đấu, một trong những điều sau đây phải được đáp ứng:

    • Ứng cử viên chiến thắng và mạng Wi-Fi được kết nối có cùng BSSID.
    • Nếu khả dụng chuyển vùng chương trình cơ sở (bao gồm khả năng BSSID trong danh sách đen), ứng cử viên chiến thắng và mạng được kết nối có cùng SSID và loại bảo mật.

    Nếu ứng cử viên chiến thắng phù hợp với mạng hiện đang được kết nối, không có hành động nào được thực hiện thêm. Nếu ứng cử viên chiến thắng không khớp với mạng, thiết bị được liên kết với ứng viên chiến thắng.

Lưu ý rằng kết nối mạng tự động bị tắt trong khi ứ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ạng LAN không có internet, ngoại trừ trên các thiết bị hỗ trợ các trạm đồng thời kép.

Đánh giá mạng được kết nối

Khung hoặc phần sụn Android định kỳ đánh giá chất lượng của mạng được 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.

Đánh giá này được thực hiện ngoài việc lựa chọn mạng được thảo luận ở trên.

Màn hình đang bật

Khung Android đánh giá mạng được kết nối theo cách sau:

  1. Dịch vụ Wi-Fi thăm dò RSSI và thống kê lớp liên kết cứ 3 giây một lần (có thể định cấu hình bằng cách sử dụng lớp phủ config_wifiPollRssiIntervalMilliseconds ).
  2. Dịch vụ Wi-Fi tính toán điểm số được kết nối dựa trên RSSI và thống kê lớp liên kết.
  3. Dịch vụ Wi-Fi chuyển điểm cho dịch vụ kết nối, dịch vụ này sử dụng điểm để xác định xem kết nối với mạng Wi-Fi hay với một loại mạng khả dụng khác, chẳng hạn như mạng di động.

Tắt màn hình

Khung công tác không bắt đầu đánh giá trên mạng được kết nối, nhưng quá trình lựa chọn mạng vẫn có thể xảy ra nếu quá trình quét được thực hiện bởi các thành phần khác (ví dụ: dịch vụ vị trí). Phần sụn đánh giá chất lượng mạng và nếu chất lượng mạng kém, chương trình cơ sở có thể chuyển vùng hoặc (cuối cùng) tách khỏi mạng và đánh thức máy chủ.

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ị 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 đang bật

Khung kích hoạt các quyết định quét theo các khoảng thời gian ngày càng tăng khi màn hình được bật. Các khoảng thời gian quyết định quét được định cấu hình với các lớp phủ config_wifiDisconnectedScanIntervalScheduleSec , config_wifiConnectedScanIntervalScheduleSecconfig_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec lớp phủ (là mảng các số nguyên). Theo mặc định, quá trình quét diễn ra bằng cách sử dụng khoảng thời gian lùi theo cấp số nhân 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ủ trên).

Khoảng thời gian quét lùi theo cấp số nhân được đặt lại và khởi động lại ở 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+) Nếu cần các khoảng thời gian quét khác nhau trong thời gian chạy, ứng dụng có đặc quyền OEM có thể gọi API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) để đặt lịch quét trên màn hình một cách tự động.

Quyết định 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 quá trình 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 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 các ngưỡng lưu lượng bên dưới).
  • RSSI cao hơn ngưỡng RSSI yêu cầu (xem các ngưỡng RSSI bên dưới) 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 ) mạng được xác thực (kết nối với internet) hoặc người dùng -được chấp thuận để sử dụng mà không cần truy cập internet.

Các ngưỡng RSSI và 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 cho các băng tần 5 GHz và 6 GHz, được định cấu hình với lớp phủ config_wifi_framework_wifi_score_low_rssi_threshold_5GHzconfig_wifiFrameworkScoreLowRssiThreshold6ghz .
  • Lưu lượng (truyền hoặc nhận) trên 16 gói mỗi giây (pps) được định cấu hình với lớp phủ config_wifiFrameworkMinPacketPerSecondActiveTraffic .

Khi thiết bị được kết nối và màn hình đang bật. Người ghi điểm được kết nối theo dõi định kỳ 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ợ các trạm đồng thời kép, thì quá trình quét sẽ được kích hoạt. Lớp phủ config_wifiLowConnectedScoreThresholdToTriggerScanForMbb có thể được sử dụng để định cấu hình ngưỡng điểm kích hoạt quá trình quét. Lớp phủ config_wifiLowConnectedScoreScanPeriodSeconds có thể được sử dụng để định cấu hình khoảng thời gian của các lần quét này.

Tắt màn hình 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ở (Wi-Fi SoC) sẽ thực hiện quét chuyển vùng. Khung công tác không thực hiện bất kỳ quá 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 cấu hình phần sụn với 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, phần sụn sẽ đánh thức khung.

Khung cũng định cấu hình khoảng thời gian mà phần sụn sẽ thực hiện 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ị đứng yên), khoảng thời gian là 60 giây cho ba lần quét đầu tiên (được kiểm soát bởi lớp phủ config_wifiStationaryPnoScanIntervalMillis ) và 180 giây (hệ số nhân 3x cố định của 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 ba lần quét đầu tiên (được kiểm soát bởi lớp phủ config_wifiMovingPnoScanIntervalMillis ) và 60 (hệ số 3x cố định của lớp phủ) giây cho các lần quét tiếp theo.

Người đề cử mạng

Các đề cử mạng tìm hoặc tạo cấu hình ( WifiConfiguration ) cho các mạng:

  • Hiện có sẵn (dựa trên kết quả quét) hoặc mạng hiện đang được kết nối (đôi khi bị thiếu trong kết quả quét không ổn định).
  • Có một 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 cách sử dụng config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHzconfig_wifiFrameworkScoreEntryRssiThreshold6ghz
  • Chẳng hạn như không bị chặn do lỗi kết nối trước đó.
  • Mạng không cho biết nó không sử 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ó sẵn trên thiết bị.

Các đề cử mạng sau được sử dụng:

  • Bộ đề cử mạng đã lưu: Đánh giá tất cả các mạng đã lưu (bao gồm cả các đăng ký Passpoint đã lưu).
  • Đề cử mạng được đề xuất: Đánh giá tất cả các mạng được cung cấp bởi các ứng dụng bằng API đề xuất (bao gồm các đăng ký Passpoint được đề xuất).
  • Bộ đề cử mạng được chấm điểm bên ngoài: Cơ chế OEM để cung cấp các tùy chọn kết nối mạng cho thiết bị. Để biết thêm thông tin, hãy xem Nhà cung cấp xếp hạng mạng bên ngoài .

Người chấm điểm ứng viên

Người chấm điểm ứng viên đánh giá và cung cấp điểm cho từng ứng viên. Điểm số cho ThroughputScorer (người ghi bàn mặc định) dựa trên những điều sau:

  • Điểm cơ bản được tính dựa trên RSSI, trong đó RSSI được giới hạn ở -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 config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHzconfig_wifiFrameworkScoreLowRssiThreshold6ghz ).
  • Mức tăng điểm được tính dựa trên ước tính thông lượng thu đượ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. Việc tăng điểm có thể được định cấu hình bằng cách sử dụng lớp phủ config_wifiFrameworkThroughputBonusNumeratorconfig_wifiFrameworkThroughputBonusDenominator và được giới hạn ở một giá trị tối đa được chỉ định bằng cách sử dụng lớp phủ config_wifiFrameworkThroughputBonusLimit .
  • Mạng ứng viên được người dùng hoặc ứng dụng lựa chọn gần đây sẽ được tăng điểm số lớn trong khoảng thời gian có thể định cấu hình bằng cách sử dụng lớp phủ config_wifiFrameworkLastSelectionMinutes (trong khoảng thời gian đó, mạng được đảm bảo sẽ được chọn trên các mạng không phải do người dùng chọn).
  • Ứng cử viên phù hợp với mạng hiện tại sẽ được tăng điểm số được cấu hình bởi lớp phủ config_wifiFrameworkCurrentNetworkBonusMinconfig_wifiFrameworkCurrentNetworkBonusPercent (nó nhận được thêm phần thưởng dựa trên phần trăm RSSI và điểm 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 an toàn đượ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 (miễn phí) được cho điểm cao hơn mạng đo lường (trả phí). Phần thưởng được định cấu hình bằng lớp phủ config_wifiFrameworkUnmeteredNetworkBonus .
  • Mạng đã lưu được cho đ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 .
  • 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) được cho điểm 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ẽ bị điểm 0 nếu thiết bị hiện được kết nối với một mạng khác có truy cập internet.

Phần thưởng mặc định cho đề xuất đã lưu so với đề xuất và không đo lường so với có đo lường (nghĩa là, các giá trị lớp phủ mặc định) tạo ra một thứ tự ưu tiên nghiêm ngặt cho đã lưu, đề xuất, có đo lường và không đo lường:

  1. Đã lưu mạng không đo lường
  2. Các mạng không đo lường được đề xuất
  3. Các mạng được đo lường đã lưu
  4. Các mạng đo lường được đề xuất

Điều này có nghĩa là một mạng không đo đếm được lưu (miễn phí) luôn được chọn trước một mạng đã lưu đo lường (trả phí). Phần thưởng điểm số được chọn gần đây (theo người dùng hoặc ứng dụng) có thể ghi đè mức độ ưu tiên nghiêm ngặt đó.

Khung có thể có một số bộ chấm điểm ứng cử viên được cài đặt nhưng mỗi lần chỉ có thể hoạt động một bộ. Các bộ ghi điểm khác có thể được sử dụng cho các chỉ số (để điều tra các thuật toán thay thế). Trong Android 11, người ghi bàn mặc định là ThroughputScorer .

Chặn SSID và BSSID

Khuôn khổ có thể chặn SSID và / hoặc BSSID, nghĩa 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.

BSSID chặn

Tính năng chặn BSSID hoạt động bằng cách giữ hai bộ đếm lỗi, một bộ đếm lỗi liên tục và một bộ đếm vệt, 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 được tăng dần.
  • Nếu đạt đến ngưỡng lỗi cho loại lỗi đó:
    • BSSID bị chặn.
    • Bộ đếm vệt cho lỗi được tăng lên.

Khoảng thời gian mà BSSID bị chặn bắt đầu ở giá trị cơ sở (có thể định cấu hình) (được chỉ định bởi lớp phủ config_wifiBssidBlocklistMonitorBaseBlockDurationMs hoặc config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs , tùy thuộc vào RSSI) và theo cấp số nhân tăng lên đến một giới hạn trên của lớp cấu hình có thể cấu hình được (được chỉ định config_wifiBssidBlocklistMonitorFailureStreakCap Thời lượng tăng lên nếu các lỗi liên tục xảy ra trên cùng một BSSID. Thời lượng là khoảng thời gian cơ bản được tăng theo cấp số nhân bởi khoảng thời gian thất bại, tức là khoảng thời gian thất bại là 2 có nghĩa là thời lượng khối cơ bản gấp 4 lần.

Các ngưỡng để chặn BSSID phụ thuộc vào lý do lỗi và mỗi ngưỡng đều có thể tùy 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 thể xử lý mã STA mới : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • Xác thực Internet qua mạng này không thành công: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Mã lỗi xác thực mật khẩu sai: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • Mã lỗi xác thực lỗi EAP cho mạng EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold .
  • Từ chối liên kết, các từ chối liên kết chung khác: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Thời gian chờ liên kết: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Lỗi xác thực, các lỗi xác thực chung khác: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • Lỗi DHCP, không cung cấp được 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 . Cửa sổ thời gian có thể định cấu hình bằng config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs .

Điều kiện xóa danh sách chặn BSSID

BSSID bị xóa khỏi danh sách chặn khi:

  • Wi-Fi được bật: Tất cả BSSID đều bị xóa 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 do người dùng chọn sẽ bị xóa khỏi danh sách chặn.
  • Thời gian chờ: BSSID bị xóa khỏi danh sách chặn khi đạt đến thời lượng chặn.
  • Khởi động lại: Tất cả danh sách chặn đều bị xóa.
  • Mạng bị xóa: Tất cả BSSID được liên kết với mạng này đều bị xóa khỏi danh sách chặn.

Điều kiện đặt lại bộ đếm lỗi và bộ đếm vệt:

  • Khởi động lại: Đặt lại cho tất cả BSSID.
  • Mạng đã bị xóa: Đặ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ỉ bị xóa có điều kiện nếu lần cuối cùng thiết bị được 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 mã lỗi sau.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Cấp phép DHCP thành công: Đặt lại cho mã lỗi sau.

    • REASON_DHCP_FAILURE

Chặn SSID

Chặn SSID hoạt động tương tự như 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ỗ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ã hóa trong WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS và được tóm tắt bên dưới.

* Đối với các mạng bị vô hiệu hóa tạm thời, thời gian vô hiệu hóa thay đổi động dựa trên số lần lỗi kết nối liên tiếp gặp phải trên mạng. Sau khi mạng không thể kết nối liên tiếp năm lần, mỗi lần lỗi tiếp theo dẫn đến thời gian vô hiệu hóa dài gấp đôi thời gian trước đó. Ví dụ: một mạng có năm lỗi liên tiếp sẽ bị vô hiệu hóa trong 5 phút, sau đó là 10 phút đối với lỗi thứ sáu, 20 phút đối với lỗi thứ bảy, v.v. lên đến giới hạn tối đa là 18 giờ.

Mã lỗi Sự mô tả Ngưỡng Thời gian vô hiệu hóa cơ bản * Tắt loại
DISABLED_DHCP_FAILURE Không cung cấp 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 nói rằng 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 Nhà cung cấp thiếu thông tin xác thực để kết nối với mạng 1 NA Dài hạn
DISABLED_NO_INTERNET_PERMANENT Mặc định cho lỗi xác thực mạng 1 NA Dài hạn
DISABLED_BY_WIFI_MANAGER Không được dùng nữa và không được sử dụng 1 NA Dài hạn
DISABLED_BY_WRONG_PASSWORD Mật khẩu không chính xác và mạng này chưa bao giờ được kết nối thành công với 1 NA Dài hạn
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Lỗi EAP trong đó thẻ SIM chưa được đăng ký 1 NA Dài hạn
DISABLED_ASSOCIATION_REJECTION Các 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 (nghĩa là không sai mật khẩu hoặc lỗi EAP) 5 5 phút Tạm thời
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Lỗi EAP dành riêng cho nhà cung cấp (riêng tư). 1 NA Dài hạn
DISABLED_NETWORK_NOT_FOUND Người đề nghị không tìm thấy mạng trong kết quả quét phù hợp với mạng mà khuôn khổ yêu cầu để kết nối (bao gồm cả khả năng mạng). 2 5 phút Tạm thời
DISABLED_CONSECUTIVE_FAILURES Mạng không thể kết nối liên tiếp năm lần trở lên. 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 hóa tạm thời được kích hoạt lại khi:

  • Thời hạn vô hiệu hóa đã qua.
  • 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 được khởi động lại.
  • Mạng đã bị vô hiệu hóa ở RSSI rất thấp, nhưng mạng sau đó được phát hiện lại ở RSSI vừa phải hoặc cao hơn.

Mạng bị vô hiệu hóa vĩnh viễn được kích hoạ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ạng được đặt lại khi:

  • Mạng bị xóa.
  • 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 được 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 vẫn được duy trì bằng cách sử dụng dịch vụ IpMemoryStore .

Thẻ điểm không được sử 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ó thuật toán lựa chọn kết nối của người dùng cho phép quá trình lựa chọn ưu tiên các mạng Wi-Fi mà người dùng đã kết nối rõ ràng, chẳng hạn như mạng gia đình. Người dùng có thể thích 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 như khả năng điều khiển các thiết bị gia đình.

Sở thích của người dùng đối với mạng được ghi lại bằng cách đánh dấu tất cả các cấu hình Wi-Fi có thể nhìn thấy và cường độ tín hiệu của chúng tại thời điểm người dùng chọn 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ó sẵn 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 với mạng do người dùng chọn nếu các điều kiện sau được đáp ứng:

  • Mạng lựa chọn kết nối của người dùng có quyền truy cập Internet vào lần cuối cùng mạng đượ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 nó được chọn ban đầu với biên độ lỗi. Biên độ lỗi này có thể được định cấu hình bằng cách sử dụng overlay config_wifiEstimateRssiErrorMarginDb .

Mạng lựa chọn kết nối của người dùng 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 phù hợp với các mạng đã lưu, mạng Passpoint và mạng gợi ý.

Các trạm đồng thời kép

Phần này mô tả lựa 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.

Làm trước khi nghỉ

Nếu chức năng chuẩn bị trước khi ngắt đượ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 khỏi mạng cũ. Luồng thực hiện trước khi ngắt sử dụng thuật toán lựa chọn mạng tương tự như chuyển đổi mạng ngắt trước khi thực hiện (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 chế độ tạm dừng trước khi ngắt, thiết bị sẽ tự động trở lại trạng thái ngắt trước khi thực hiện.

Kết nối internet và hạn chế đồng thời

Nếu chức năng kết nối internet và hạn chế đồng thời được bật, thiết bị có thể kết nối với mạng Wi-Fi bị hạn chế thứ cấp chỉ khả dụng 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 dành cho nhà sản xuất thiết bị để định cấu hình điều này trong 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 trả phí / riêng tư của OEM, nó sẽ tự động kết nối với nó như một mạng thứ hai. Việc 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) diễn ra bình thường song song.

Câu hỏi thường gặp (FAQ)

  1. Các mạng an toàn có luôn được ưu tiên hơn các mạng mở không?

    Không. Đã lưu so với được đề xuất và được đo lường so với không được đo lường là các danh mục chính mà mạng được đánh giá. Trong mỗi loại, mạng an toàn có một số ưu tiên hơn so với mạng mở nhưng chất lượng kết nối cao hơn nhiều.

    Lý do là bảo mật dữ liệu người dùng thực tế được cung cấp bởi mã hóa đầu cuối (ví dụ: TLS). Mạng an toàn chỉ mã hóa bước đầu tiên của giao tiếp và thậm chí sau đó đối với các mạng có khóa chia sẻ trước, không cung cấp nhiều quyền riêng tư.

  2. 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í đã lưu (không đo đếm) được ưu tiên hơn các mạng miễn phí được đề xuất và các mạng đo đếm đã lưu được ưu tiên hơn các mạng đo lường được đề xuất.

    Các mạng đã lưu được ưu tiên hơn các mạng được đề xuất vì các 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 đó ngụ ý ưu tiên kết nối với các mạng này khi có thể.

    Lưu ý rằng người dùng có thể tắt hành vi kết nối tự động cho các mạng đã lưu riêng lẻ, nghĩa là chỉ ra 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ị xem xét tự động.

  3. Tôi có thể thay đổi thứ tự ưu tiên nghiêm ngặt hoặc loại bỏ nó hoàn toàn 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ủ thưởng được liệt kê trong các phần trên. Tuy nhiên, việc thay đổi các giá trị mặc định không được khuyến nghị vì chúng đã được chọn sau khi xem xét cẩn thận nhiều trường hợp sử dụng.