Выбор сети 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 или по соединению проходит достаточный трафик (см. сканирование экрана для получения информации о пороговых значениях RSSI и трафика).
        • Сеть проверена (подключена к Интернету) или одобрена пользователем для использования без доступа к Интернету.
        • Сеть не тарифицируется.
    • Если сеть достаточно хороша, чтобы пропустить выбор сети , то дальнейшие действия не предпринимаются.

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

    • Результаты сканирования фильтруются для удаления BSSID с RSSI ниже указанного 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» .

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

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

  4. Платформа выполняет алгоритм выбора пользовательского соединения , который может сделать выбранную пользователем сеть новым победителем-кандидатом вместо использования победителя-кандидата от оценщика кандидатов.

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

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

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

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

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

Платформа или прошивка Android периодически оценивает качество подключённой сети. В этом разделе описывается, как оценивается качество подключённой сети при включённом и выключенном экране.

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

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

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

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

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

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

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

Выключить экран

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

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

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

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

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

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

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

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

  • Устройство подключено к соединению онлайн-регистрации (OSU).
  • Через соединение проходит достаточный трафик (см. пороговые значения трафика ниже).
  • RSSI превышает требуемый порог 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 пакетов в секунду (pps), настроенных с помощью наложения 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 секунд (фиксированный 3-кратный множитель оверлея) для последующих сканирований. В состоянии высокой мобильности интервал составляет 20 секунд для первых трёх сканирований (управляется оверлеем config_wifiMovingPnoScanIntervalMillis ) и 60 секунд (фиксированный 3-кратный множитель оверлея) для последующих сканирований.

Сетевые номинаторы

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

  • Доступная (на основании результатов сканирования) или подключенная сеть (которая иногда отсутствует в нестабильных результатах сканирования).
  • Иметь минимальный RSSI. Минимальный 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 .
  • Сохранённая сеть оценивается выше, чем сеть, предложенная с помощью Suggestion API. Бонус настраивается с помощью оверлея config_wifiFrameworkSavedNetworkBonus .
  • Недоверенные сети (которые можно запросить как часть Suggestion 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 постоянно происходят сбои. Продолжительность представляет собой базовую продолжительность, экспоненциально увеличенную на количество сбоев, то есть, количество сбоев, равное 2, подразумевает четырёхкратное увеличение базовой продолжительности блокировки.

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

  • AP отклоняет ассоциацию с использованием MBO/OCE Невозможно обработать новый код 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 более 3 часов назад)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Проверка сети прошла успешно: сбрасывается для следующего кода ошибки.

    • REASON_NETWORK_VALIDATION_FAILURE
  • Успешное предоставление DHCP: сброс для следующего кода ошибки.

    • REASON_DHCP_FAILURE

Блокировка SSID

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

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

Код ошибки Описание Порог Базовая продолжительность отключения* Тип отключения
DISABLED_DHCP_FAILURE Не удалось предоставить DHCP 5 5 минут Временный
DISABLED_NO_INTERNET_TEMPORARY Проверка сети не удалась, но пользователь заявляет, что хочет продолжать подключаться к этой сети в будущем. 1 10 минут Временный
DISABLED_AUTHENTICATION_NO_CREDENTIALS У заявителя отсутствуют учетные данные для подключения к сети. 1 NA Постоянный
DISABLED_NO_INTERNET_PERMANENT Значение по умолчанию при сбое проверки сети 1 NA Постоянный
DISABLED_BY_WIFI_MANAGER Устаревший и неиспользуемый 1 NA Постоянный
DISABLED_BY_WRONG_PASSWORD Пароль неверный, и эта сеть никогда не была успешно подключена к 1 NA Постоянный
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION Ошибка EAP, когда SIM-карта не подключена 1 NA Постоянный
DISABLED_ASSOCIATION_REJECTION Ошибки отклонения ассоциаций 5 5 минут Временный
DISABLED_AUTHENTICATION_FAILURE Другие сбои аутентификации (то есть не неправильный пароль или сбой EAP) 5 5 минут Временный
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Ошибка EAP, специфичная для поставщика (частная). 1 NA Постоянный
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, когда устройство поддерживает подключение к двум сетям Wi-Fi одновременно.

Сделать-до-разрушения

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

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

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

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

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

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

    Нет. Основные категории, по которым оцениваются сети: «Сохранённые» или «Предложенные», «Льготные» или «Безлимитные». В каждой категории безопасные сети имеют определённый приоритет над открытыми, но гораздо большее значение придаётся качеству соединения.

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

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

    Сохраненные бесплатные (безлимитные) сети имеют приоритет над предлагаемыми бесплатными сетями, а сохраненные тарифицируемые сети имеют приоритет над предлагаемыми тарифицируемыми сетями.

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

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

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

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