Выбор сети Wi-Fi

На этой странице описаны алгоритмы и процедуры, используемые в Android 12 для выбора сетей Wi-Fi и переключения между ними. Android постоянно оценивает качество подключенной сети и доступных сетей.

Срок действия автоматической связи

В этом разделе описывается, как устройство Android оценивает доступные сети Wi-Fi и подключается к ним.

  1. Устройство ищет доступные сети одним из следующих способов в зависимости от того, включен ли экран.

    • Экран включен (подключено). Подсистема подключения Android регулярно проверяет, достаточно ли хорошее текущее подключение, чтобы пропустить сканирование (как определено в сканировании при включенном экране). Если подключение недостаточно стабильное, чтобы пропустить сканирование, подсистема подключения запускает сканирование для обнаружения доступных сетей. Сканирование также могут запускать другие системные компоненты, например система геолокации или приложение (в том числе приложение "Настройки").
    • Экран включен (отключено). Подсистема подключения Android выполняет периодическое сканирование с экспоненциальным уменьшением интервала. Модуль оценивает все полученные результаты сканирования и пытается выбрать лучшую сеть для подключения.
    • Экран выключен (отключено). Как только экран выключается, процессор хоста программирует встроенное ПО, используя сканирование с переносом предпочитаемых сетей (PNO). Встроенное ПО будит хост, если находит одну из предпочитаемых сетей. В AOSP предполагается, что устройство поддерживает PNO.

    Метод WifiManager#allowAutojoinGlobal(boolean) можно использовать, чтобы отключить автоматическое подключение. Это привилегированный API, который производители устройств могут использовать в ограниченных обстоятельствах (например, для предварительно настроенного немобильного устройства).

    Если устройство подключено и для параметра config_wifi_framework_enable_associated_network_selection задано значение false, сканирование подключения не выполняется, а результаты сканирования не влияют на выбор сети. Эта настройка не действует, когда устройство отключено, то есть сканирование подключений и выбор сети по-прежнему выполняются.

  2. Результаты сканирования оцениваются.

    • Если устройство подключено к сети Wi-Fi, фреймворк оценивает, достаточно ли она хороша, чтобы пропустить выбор сети.

      Сеть считается достаточно хорошей, чтобы пропустить выбор сети, если выполняется хотя бы одно из следующих требований:

      • С момента последнего выбора сети прошло менее 10 секунд.
      • Пользователь недавно вручную подключился к сети (период времени можно настроить с помощью оверлея config_wifiSufficientDurationAfterUserSelectionMilliseconds).
      • Устройство подключено к онлайн-регистрации (OSU).
      • Выполняются все следующие условия:

        • Уровень принимаемого сигнала (RSSI) выше порогового значения или через подключение передается достаточно трафика (см. сканирование при включенном экране для пороговых значений RSSI и трафика).
        • Сеть проверена (подключена к интернету) или одобрена пользователем для использования без доступа к интернету.
        • Сеть безлимитная.
    • Если сеть достаточно хороша, чтобы пропустить выбор сети, дальнейшие действия не предпринимаются.

    • Если подключенная сеть Wi-Fi недостаточно хорошая или устройство не подключено к сети, фреймворк вызывает номинаторов сети, чтобы создать список подходящих сетей Wi-Fi на основе отфильтрованных результатов сканирования. Номинаторы сети находят существующие конфигурации Wi-Fi или создают новые для сетей-кандидатов.

    • Результаты сканирования фильтруются, чтобы удалить BSSID с RSSI ниже, чем у точки входа (настраивается с помощью оверлеев config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz и config_wifiFrameworkScoreEntryRssiThreshold6ghz). Кроме того, фильтруются заблокированные BSSID. BSSID могут быть заблокированы на основе повторяющихся сбоев подключения, частых отключений и явных запросов от ТД не пытаться установить связь в течение определенного периода времени (MBO-OCE). Блокировка BSSID описана в разделе о блокировке SSID и BSSID.

    • Когда устройство движется (с низкой или высокой скоростью), все сети операторов связи отфильтровываются из результатов сканирования. Определенных операторов можно исключить из этого фильтра, добавив их идентификаторы в config_wifiMobilityFilterCarrierIdBlocklist.

    • Если устройство быстро перемещается, результаты сканирования можно дополнительно отфильтровать, чтобы удалить BSSID, RSSI которых быстро меняется (это означает, что они не перемещаются вместе с устройством). Этот параметр можно настроить с помощью config_wifiHighMovementNetworkSelectionOptimizationEnabled (включить или отключить оптимизацию) и наложений config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs и config_wifiHighMovementNetworkSelectionOptimizationRssiDelta, которые задают требования к стабильности результатов сканирования (изменение RSSI в результатах сканирования, достаточно разделенных во времени).

  3. Фреймворк запускает оценщик кандидатов, чтобы сгенерировать оценку для каждого кандидата SSID. Кандидаты SSID могут включать несколько кандидатов BSSID, сгенерированных номинаторами сети. Победителем становится кандидат с самым высоким баллом.

  4. Алгоритм выбора подключения пользователя может сделать сеть, выбранную пользователем, новым победителем вместо победителя, определенного алгоритмом оценки кандидатов.

  5. Фреймворк определяет, соответствует ли выбранный кандидат подключенной сети. Чтобы считаться совпадением, должно выполняться одно из следующих условий:

    • У победившего кандидата и подключенной сети Wi-Fi одинаковый BSSID.
    • Если роуминг на уровне встроенного ПО доступен (включая возможность блокировки BSSID), то у выбранного кандидата и подключенной сети одинаковые SSID и тип безопасности.

    Если побеждает сеть, к которой вы подключены, никаких действий не выполняется. Если кандидат-победитель не соответствует сети, устройство подключается к нему.

Оценка подключенной сети

Фреймворк или встроенное ПО Android периодически оценивает качество подключенной сети. В этом разделе описывается, как оценивается подключенная сеть, когда экран включен или выключен.

Эта оценка выполняется в дополнение к выбору сети, описанному в предыдущих разделах.

Работа экрана

Платформа Android оценивает подключенную сеть следующим образом:

  1. Сервис Wi-Fi опрашивает RSSI и статистику уровня связи каждые три секунды (этот интервал можно настроить с помощью оверлея config_wifiPollRssiIntervalMilliseconds).

    Если динамическая корректировка интервала включена с помощью наложения config_wifiAdjustPollRssiIntervalEnabled, интервал опроса будет динамически меняться в зависимости от состояния мобильности устройства и RSSI.

    • Интервал опроса увеличивается до шести секунд (настраивается с помощью наложения config_wifiPollRssiLongIntervalMilliseconds), когда устройство неподвижно и уровень сигнала RSSI превышает -68 дБм (настраивается с помощью наложений config_wifiClientRssiMonitorThresholdDbm и config_wifiClientRssiMonitorHysteresisDb).
    • Интервал опроса снова сокращается до трех секунд (настраивается с помощью оверлея config_wifiPollRssiIntervalMilliseconds), если устройство не находится в неподвижном состоянии или RSSI меньше -73 дБм (настраивается с помощью оверлея config_wifiClientRssiMonitorThresholdDbm).
  2. Сервис Wi-Fi рассчитывает оценку подключения на основе RSSI и статистики канального уровня. Для этого расчета доступны две модели, которые можно настроить с помощью параметра config_internalScorerType:

    • По умолчанию используется система оценки на основе машинного обучения, обученная на статистике канального уровня.
    • Альтернативный вариант: более старый алгоритм, который оценивает качество подключения на основе изменений значения RSSI.
  3. Производители оборудования могут настроить логику оценки подключенной сети, реализовав внешнее приложение для оценки. Для этого нужно реализовать интерфейс WifiConnectedNetworkScorer и зарегистрировать его с помощью API WifiManager#setWifiConnectedNetworkScorer(executor, scorer).

    После регистрации внешний оценщик взаимодействует с фреймворком следующим образом:

    • Входные данные (фреймворк → оценщик)
      Фреймворк уведомляет оценщика о ключевых событиях жизненного цикла и качества:

      • Жизненный цикл сеанса. onStart() и onStop() указывают, когда подключение по Wi-Fi было установлено или разорвано.
      • Статистика Wi-Fi. Оценщик периодически получает обновления статистики уровня канала (например, RSSI, скорость подключения и количество пакетов) с помощью OnWifiUsabilityStatsListener#onWifiUsabilityStats(). Чтобы получать эти обновления, оценщик должен зарегистрировать прослушиватель с помощью метода WifiManager#addOnWifiUsabilityStatsListener().
    • Действия (оценщик → фреймворк)
      Оценщик управляет сервисом Wi-Fi, вызывая методы объекта обратного вызова ScoreUpdateObserver:

      • Статус удобства использования. Вызов notifyStatusUpdate(sessionId, isUsable) – это основной механизм управления выбором сети.
        • isUsable = true: сеть действительна. Фреймворк продвигает ее в сеть по умолчанию для системного трафика.
        • isUsable = false: сеть недействительна. Фреймворк не использует ее по умолчанию, а переключается на мобильный интернет.
      • Проверка доступности. Вызов requestNudOperation() запускает активную проверку доступности соседних узлов (NUD), например ARP или ND, чтобы убедиться, что шлюз доступен.
      • Черный список BSSID. Вызов blocklistCurrentBssid() запрещает устройству повторно подключаться к текущей точке доступа. Это полезно, если система обнаруживает проблемы, связанные с AP.
  4. Если OEM-производитель реализовал собственный оценщик, как описано на шаге 3, сервис Wi-Fi передает ему решения, связанные с оценкой подключенной сети.
    Если производитель устройства не реализовал собственный алгоритм оценки, сервис Wi-Fi использует оценку, рассчитанную на шаге 2, чтобы определить, следует ли переключиться на мобильный интернет.

Экран выключен

Фреймворк не запускает оценку подключенной сети, но процесс выбора сети может выполняться, если сканирование инициируется другими компонентами (например, службами геолокации). Встроенное ПО оценивает качество сети и, если оно плохое, может переключиться на другую сеть или (в конечном итоге) отключиться от сети и вывести хост из спящего режима.

Сканирование подключения

Сканирование выполняется автоматически в зависимости от того, включен ли экран устройства, выключен ли он и подключено ли устройство к Wi-Fi.

Работа экрана

Фреймворк запускает сканирование с увеличивающимися интервалами, когда экран включен. Интервалы принятия решений о сканировании настраиваются с помощью наложений config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec и config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (которые представляют собой массивы целых чисел). По умолчанию сканирование выполняется с экспоненциальным уменьшением интервалов: 20, 40, 80 и 160 секунд. Последующие сканирования могут выполняться с интервалом 160 секунд (это значения по умолчанию для этих наложений).

Интервалы сканирования с экспоненциальной выдержкой сбрасываются и перезапускаются через 20 секунд при каждом изменении состояния экрана, то есть при его включении или выключении.

(Android 13 и более поздние версии) Если во время выполнения требуются разные интервалы сканирования, привилегированное приложение OEM может вызвать API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule), чтобы динамически задать расписание сканирования при включенном экране.

Решение о том, выполнять сканирование или нет, принимается на основе того, достаточно ли хорошее текущее подключение к сети. Подключение достаточно хорошее, чтобы пропустить сканирование, если выполняется хотя бы одно из следующих требований:

  • Устройство подключено к онлайн-регистрации (OSU).
  • Через подключение проходит достаточно трафика (см. пороговые значения трафика ниже).
  • Значение RSSI выше порогового (см. раздел "Пороговые значения RSSI" ниже) и сеть была выбрана недавно (по умолчанию 10 минут, но это значение можно настроить с помощью оверлея config_wifiConnectedHighRssiScanMinimumWindowSizeSec), и сеть проверена (подключена к интернету) или пользователь разрешил ее использование без доступа к интернету.

Пороговые значения RSSI и трафика:

  • RSSI больше -73 дБм для диапазона 2,4 ГГц, настроенного с наложением config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, или -70 дБм для диапазонов 5 ГГц и 6 ГГц, настроенных с наложениями config_wifi_framework_wifi_score_low_rssi_threshold_5GHz и config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • Трафик (передача или получение) превышает 16 пакетов в секунду, настроенных с помощью оверлея config_wifiFrameworkMinPacketPerSecondActiveTraffic.

Когда устройство подключено к сети и экран включен, подключенный модуль оценки периодически проверяет качество Wi-Fi, анализируя такие сигналы, как RSSI и количество переданных пакетов. Если качество подключения к сети Wi-Fi низкое (как описано ниже) и устройство поддерживает две станции, работающие одновременно, запускается сканирование. С помощью оверлея config_wifiLowConnectedScoreThresholdToTriggerScanForMbb можно настроить пороговое значение, при котором запускается сканирование. Для настройки периода сканирования можно использовать оверлей config_wifiLowConnectedScoreScanPeriodSeconds.

Экран выключен, и устройство подключено к Wi-Fi.

Когда экран выключен и устройство подключено к сети Wi-Fi, встроенное ПО (Wi-Fi SoC) выполняет сканирование в роуминге. Когда экран выключен, сканирование не выполняется.

Экран выключен, и устройство не подключено к сети Wi-Fi (состояние отключения).

Когда экран выключен и Wi-Fi не подключен, встроенное ПО выполняет PNO-сканирование для поиска SSID. Фреймворк настраивает встроенное ПО, добавляя в него список SSID и каналов для сканирования. Если будет найдена настроенная SSID, встроенное ПО разбудит фреймворк.

Кроме того, фреймворк настраивает интервал, с которым встроенное ПО должно выполнять сканирование PNO, используя состояние мобильности устройства для выбора разных интервалов сканирования. При низкой мобильности (устройство неподвижно) интервал составляет 60 секунд для первых трех сканирований (контролируется оверлеем config_wifiStationaryPnoScanIntervalMillis) и 180 секунд (фиксированный множитель 3x для оверлея) для последующих сканирований. При высокой мобильности интервал составляет 20 секунд для первых трех сканирований (управляется наложением config_wifiMovingPnoScanIntervalMillis) и 60 секунд (фиксированный множитель 3x наложения) для последующих сканирований.

Номинаторы сети

Номинаторы сети находят или создают конфигурации (WifiConfiguration) для сетей, которые:

  • Доступные (на основе результатов сканирования) или подключенные сети (которые иногда отсутствуют в результатах сканирования).
  • Минимальный уровень сигнала. Минимальный уровень сигнала RSSI составляет -80 дБм для диапазона 2,4 ГГц и -77 дБм для диапазонов 5 и 6 ГГц.Его можно настроить с помощью оверлеев config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz и config_wifiFrameworkScoreEntryRssiThreshold6ghz.
  • Не заблокировано, например из-за предыдущих сбоев подключения.
  • Сеть не указывает, что она непригодна для использования (например, с помощью MBO/OCE).
  • Может быть связан с использованием учетных данных, доступных на устройстве.

Используются следующие номинаторы сети:

  • Номинатор сохраненных сетей. Оценивает все сохраненные сети, включая подписки Passpoint.
  • Предлагаемый номинатор сети. Оценивает все сети, предоставленные приложениями с помощью Suggestion API (включая предлагаемые подписки Passpoint).

Оценки кандидатов

Оценщики кандидатов оценивают каждого кандидата и выставляют ему оценку. Оценка для ThroughputScorer (оценщика по умолчанию) рассчитывается на основе следующих факторов:

  • Базовая оценка рассчитывается на основе RSSI, где RSSI ограничен -73 дБм для диапазона 2,4 ГГц или -70 дБм для диапазонов 5 ГГц и 6 ГГц (настраивается с помощью оверлеев config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz и config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • Оценка увеличивается на основе расчетной пропускной способности, которая определяется по технологии, частоте канала, пропускной способности, RSSI, условиям канала, максимальному количеству пространственных потоков и другим параметрам. Увеличение количества очков можно настроить с помощью наложений config_wifiFrameworkThroughputBonusNumerator и config_wifiFrameworkThroughputBonusDenominator. Максимальное значение задается с помощью наложения config_wifiFrameworkThroughputBonusLimit.
  • Сеть-кандидат, которая недавно была выбрана пользователем или приложением, получает значительное повышение оценки на период, настраиваемый с помощью оверлея config_wifiFrameworkLastSelectionMinutes. В течение этого периода сеть гарантированно будет выбрана вместо сетей, не выбранных пользователем.
  • Кандидат, соответствующий текущей сети, получает бонус к оценке, настроенный с помощью оверлеев config_wifiFrameworkCurrentNetworkBonusMin и config_wifiFrameworkCurrentNetworkBonusPercent (дополнительный бонус на основе процента от RSSI и оценки на основе пропускной способности, до настраиваемого минимума).
  • Безопасная сеть получает более высокую оценку, чем открытая. Бонус настраивается с помощью оверлея config_wifiFrameworkSecureNetworkBonus.
  • Сеть без тарификации (бесплатная) оценивается выше, чем сеть с тарификацией (платная). Бонус настраивается с помощью оверлея config_wifiFrameworkUnmeteredNetworkBonus.
  • Сохраненная сеть имеет более высокий приоритет, чем сеть, предложенная с помощью API Suggestion. Бонус настраивается с помощью оверлея config_wifiFrameworkSavedNetworkBonus.
  • Ненадежные сети (которые могут быть запрошены в рамках API предложений) получают более низкую оценку, чем любые другие сети.
  • Сеть, в которой ранее не было интернета, получает оценку 0, если устройство подключено к другой сети с доступом к интернету.

Бонус по умолчанию для сохраненных и предложенных вариантов, а также для вариантов с ограниченным и неограниченным трафиком (то есть значения наложения по умолчанию) создает строгий порядок приоритета для сохраненных, предложенных, ограниченных и неограниченных вариантов:

  1. Сохраненные сети без ограничений трафика
  2. Предлагаемые сети без ограничений трафика
  3. Сохраненные сети с тарификацией трафика
  4. Предлагаемые сети с лимитным трафиком

Это значит, что сохраненная безлимитная (бесплатная) сеть всегда выбирается раньше, чем сохраненная лимитная (платная) сеть. Бонус за недавно выбранную оценку (пользователем или приложением) может переопределить этот строгий приоритет.

В фреймворке может быть установлено несколько оценщиков, но активным может быть только один. Другие оценщики можно использовать для показателей (чтобы исследовать альтернативные алгоритмы). В Android 11 по умолчанию используется ThroughputScorer.

Блокировка SSID и BSSID

Фреймворк может блокировать SSID или BSSID, то есть временно или навсегда исключать их из списка доступных подключений.

Блокировка BSSID

Для блокировки BSSID используются два счетчика ошибок: счетчик непрерывных ошибок и счетчик серий ошибок. Они работают для каждого типа ошибок (список типов ошибок приведен ниже). Если произойдет сбой:

  • Счетчик для соответствующего типа ошибки увеличивается.
  • Если пороговое значение для этого типа ошибки достигнуто:
    • BSSID заблокирован.
    • Счетчик серии неудач увеличивается.

Продолжительность блокировки BSSID начинается с настраиваемого базового значения. Это базовое значение задается наложениями config_wifiBssidBlocklistMonitorBaseBlockDurationMs или config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs в зависимости от RSSI. Затем продолжительность показа увеличивается по экспоненте до настраиваемого верхнего предела, заданного в config_wifiBssidBlocklistMonitorFailureStreakCap оверлее. Продолжительность увеличивается, если сбои постоянно происходят в одной и той же сети BSSID. Продолжительность блокировки – это базовая продолжительность, экспоненциально увеличенная на количество неудачных попыток. Например, если неудачных попыток было две, базовая продолжительность блокировки увеличивается в четыре раза.

Пороговые значения для блокировки BSSID зависят от причины сбоя и могут быть настроены с помощью оверлеев:

  • ТД отклоняет подключение, используя код MBO/OCE Unable to handle new STA: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • Не удалось проверить подключение к интернету через эту сеть: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • Код ошибки аутентификации из-за неверного пароля: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • Код ошибки аутентификации EAP для сетей EAP: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Отклонение связи, другие общие отклонения связи: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Время ожидания ассоциации:config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Сбой аутентификации, другие общие сбои аутентификации: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • Ошибка DHCP, не удалось подготовить DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • Аномальное отключение. Устройство отключилось от сети вскоре после подключения. config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. Временной интервал можно настроить с помощью параметра config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

Условия очистки черного списка BSSID

BSSID удаляется из черного списка, если:

  • При включении и выключении Wi-Fi все BSSID удаляются из черного списка.
  • Когда пользователь выбирает сеть в инструменте выбора сетей Wi-Fi, все BSSID выбранной сети удаляются из черного списка.
  • По истечении этого времени BSSID удаляются из черного списка.
  • После перезагрузки системы все черные списки будут очищены.
  • При удалении сети все связанные с ней BSSID удаляются из черного списка.

Условия сброса счетчиков ошибок и серий:

  • После перезагрузки системы счетчики для всех BSSID будут сброшены.
  • При удалении сети счетчики сбрасываются для BSSID, связанных с этой сетью.
  • При успешном подключении L2 счетчики сбрасываются для следующих кодов ошибок:

    • 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 (удаляется, только если устройство подключалось к этому BSSID более трех часов назад)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Если проверка сети прошла успешно, счетчики сбрасываются для следующего кода ошибки:

    • REASON_NETWORK_VALIDATION_FAILURE
  • Если инициализация DHCP выполнена успешно, счетчики сбрасываются для следующего кода ошибки:

    • REASON_DHCP_FAILURE

Блокировка SSID

Блокировка SSID работает так же, как блокировка BSSID. При возникновении сбоя подключения определенного типа в сети увеличивается значение счетчика сбоев этого типа. Если количество сбоев определенного типа превышает пороговое значение, SSID блокируется навсегда или временно в зависимости от конфигурации. Конфигурация для каждого типа сбоя закодирована в WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS и представлена в таблице ниже.

* Для временно отключенных сетей длительность отключения динамически меняется в зависимости от количества последовательных сбоев подключения в сети. Если устройство пять раз подряд не сможет подключиться к сети, то при каждой последующей неудачной попытке время отключения будет в два раза больше, чем в предыдущий раз. Например, если в сети пять раз подряд произойдет сбой, она будет отключена на пять минут, при шестом сбое – на 10 минут, при седьмом – на 20 минут и так далее до максимального значения в 18 часов.

Код ошибки Описание Пороговое значение Базовое время до отключения* Тип отключения
DISABLED_DHCP_FAILURE Не удалось настроить DHCP 5 5 минут Временный
DISABLED_NO_INTERNET_TEMPORARY Не удалось проверить сеть, но пользователь хочет продолжить подключаться к ней в будущем 1 10 минут; Временный
DISABLED_AUTHENTICATION_NO_CREDENTIALS У клиента нет учетных данных для подключения к сети 1 Н/Д Длительный срок
DISABLED_NO_INTERNET_PERMANENT Значение по умолчанию для ошибки проверки сети 1 Н/Д Длительный срок
DISABLED_BY_WIFI_MANAGER Устаревшие и неиспользуемые 1 Н/Д Длительный срок
DISABLED_BY_WRONG_PASSWORD Неправильный пароль, и к этой сети никогда не удавалось подключиться. 1 Н/Д Длительный срок
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Сбой EAP, если SIM-карта не зарегистрирована 1 Н/Д Длительный срок
DISABLED_ASSOCIATION_REJECTION Ошибки отклонения связи 5 5 минут Временный
DISABLED_AUTHENTICATION_FAILURE Другие ошибки аутентификации (не связанные с неправильным паролем или ошибкой EAP). 5 5 минут Временный
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Сбой в работе EAP, относящийся к определенному поставщику (частный). 1 Н/Д Длительный срок
DISABLED_NETWORK_NOT_FOUND Запросчик не смог найти в результатах сканирования сеть, которая соответствует сетевому запросу фреймворка на подключение (включая возможности сети). 2 5 минут Временный
DISABLED_CONSECUTIVE_FAILURES Не удалось подключиться к сети пять или более раз подряд. Типы сбоев, перечисленные в таблице, не являются исчерпывающими.
5 5 минут Временный

Временно отключенная сеть снова включается, когда:

  • Срок отключения истек.
  • Пользователь вручную выбирает сеть для подключения.
  • Пользователь включает Wi-Fi.
  • Система перезагрузится.
  • Сеть была отключена при очень низком уровне RSSI, но позже была обнаружена снова при среднем или более высоком уровне RSSI.

Сеть, отключенная навсегда, снова включается, когда:

  • Пользователь вручную выбирает сеть для подключения.

Счетчики сбоев для сети сбрасываются в следующих случаях:

  • Сеть будет удалена.
  • Устройство успешно подключено к сети.
  • Сеть снова включена после истечения срока отключения.
  • Пользователь вручную выбирает сеть для подключения.
  • Система перезагрузится.

Сводки

Карточки оценки, появившиеся в Android 10, записывают статистику об идентификаторах BSSID на устройстве. Карточки сохраняются с помощью сервиса IpMemoryStore.

Карточки с оценками не используются в Android 11 для выбора сети.

Выбор пользователя

В Android используется алгоритм выбора подключения, который позволяет отдавать предпочтение сетям Wi-Fi, к которым пользователь подключался ранее, например домашней сети. Пользователи могут предпочитать такие сети общедоступным, даже если их производительность ниже, поскольку они предоставляют дополнительные сервисы, например возможность управлять устройствами умного дома.

Предпочтения пользователя в отношении сети определяются путем сохранения всех видимых конфигураций Wi-Fi и силы их сигнала в момент выбора сети. Если в процессе автоматического выбора выбрана одна из отмеченных конфигураций Wi-Fi и доступна сеть, выбранная пользователем, алгоритм выбора подключения пользователя переопределяет выбор сетью, выбранной пользователем, если выполняются следующие условия:

  • Сеть, выбранная пользователем, имела доступ к интернету в последний раз, когда использовалась.
  • Сила сигнала при выборе подключения пользователя не хуже, чем при первоначальном выборе, с учетом погрешности. Погрешность можно настроить с помощью наложения config_wifiEstimateRssiErrorMarginDb.

Выбранная пользователем сеть сохраняется после перезагрузки. Пользователь может выбрать подключение к сохраненным сетям, сетям Passpoint и предложенным сетям.

Две станции одновременно

В этом разделе описано, как выбрать сеть Wi-Fi, если устройство поддерживает одновременное подключение к двум сетям.

Переключение без разрыва

Если функция make-before-break включена, устройство пытается подключиться к новой сети до отключения от старой. При переключении сети с сохранением подключения используется тот же алгоритм выбора сети, что и при переключении сети с разрывом подключения (когда устройство отключается от старой сети, прежде чем подключиться к новой). Если алгоритм выбора сети выбирает сеть, которую нельзя переключить с помощью функции "сначала подключение, потом отключение", устройство автоматически переходит к функции "сначала отключение, потом подключение".

Одновременное подключение к интернету и ограниченной сети

Если функция одновременного подключения к ограниченной сети и подключения к интернету включена, устройство может подключаться к дополнительной ограниченной сети Wi-Fi, доступной только для определенных приложений, настроенных производителем устройства. Инструкции для производителей устройств по настройке этой функции приведены в разделе Одновременное использование ограниченного и интернет-подключения.

Когда алгоритм выбора сети обнаруживает результаты сканирования, соответствующие платному или частному предложению от OEM, он автоматически подключается к этой сети как ко второй. Выбор сети для основной сети Wi-Fi (которая обеспечивает подключение к интернету для обычных приложений) происходит параллельно.

Часто задаваемые вопросы

  1. Всегда ли защищенные сети имеют приоритет над открытыми?

    Нет. Сохраненные и предлагаемые сети, а также сети с лимитом трафика и без него – это основные категории, по которым оцениваются сети. В каждой категории защищенные сети имеют некоторый приоритет над открытыми, но гораздо большее значение придается качеству подключения.

    Это связано с тем, что безопасность пользовательских данных обеспечивается сквозным шифрованием (например, TLS). Защищенные сети шифруют только первую часть соединения, и даже в этом случае сети с предварительно заданными ключами не обеспечивают достаточную конфиденциальность.

  2. Почему сохраненные сети имеют приоритет над рекомендуемыми?

    Сохраненные бесплатные сети имеют приоритет над рекомендованными бесплатными сетями, а сохраненные платные сети – над рекомендованными платными сетями.

    Сохраненные сети имеют приоритет над предложенными, поскольку пользователь добавил их на устройство вручную. Это означает, что при возможности устройство будет подключаться к этим сетям.

    Обратите внимание, что пользователи могут отключить автоматическое подключение к отдельным сохраненным сетям, то есть указать, что к этим сетям можно подключаться только вручную.

  3. Можно ли изменить строгий порядок приоритета или полностью его удалить?

    Вы можете изменить выбор сети, добавив бонусные оверлеи, перечисленные в предыдущих разделах. Однако менять значения по умолчанию не рекомендуется, поскольку они были выбраны после тщательного анализа различных вариантов использования.