Одновременное использование Wi-Fi в режиме станции и точки доступа

В Android 9 появилась возможность одновременно использовать режимы STA и AP. На устройствах с поддержкой DBS эта функция открывает новые возможности, например позволяет не прерывать работу Wi-Fi в режиме STA, когда пользователь хочет включить точку доступа (softAP).

Примеры и источник

Параллельная работа Wi-Fi STA/AP поддерживается в коде фреймворка Android по умолчанию. Она также поддерживается в справочной реализации HAL, описанной в разделе Wi-Fi HAL. Флаг времени сборки WIFI_HIDL_FEATURE_DUAL_INTERFACE, описанный в разделе Реализация, позволяет задать спецификацию параллелизма интерфейса, указывающую на поддержку STA и AP.

Реализация

Чтобы реализовать одновременную работу Wi-Fi STA/AP на устройстве, выполните следующие действия:

  1. Включите флаг времени сборки, чтобы активировать поддержку двух интерфейсов в HAL. Флаг находится в device/<oem>/<device>/BoardConfig-common.mk.
    • WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
  2. Предоставьте доступ к двум сетевым интерфейсам:
    • wlan0
    • wlan1

Если указан флаг WIFI_HAL_INTERFACE_COMBINATIONS, флаг WIFI_HIDL_FEATURE_DUAL_INTERFACE игнорируется. Подробнее о параллельной работе нескольких интерфейсов Wi-Fi…

Проверка

Чтобы убедиться, что функция работает правильно, проведите тестирование вручную.

Чтобы проверить эту функцию вручную, включите и отключите интерфейсы STA и AP независимо от интерфейса.

Если точка доступа и станция находятся в одной подсети, на тестируемом устройстве могут возникнуть проблемы с маршрутизацией. Чтобы избежать конфликтов, попробуйте переместить ТД в другую подсеть.

Некоторые поставщики чипов Wi-Fi переводят радиомодуль в режим разделения времени, если STA и AP работают в одном диапазоне, но на разных каналах. Это приводит к значительному снижению производительности. Чтобы решить эту проблему, чип может использовать функцию "Избегание переключения каналов" (CSA), чтобы:

  • Переведите ТД на тот же канал, что и станция.
  • Переместите точку доступа в другой диапазон, отличный от диапазона станции.