Теперь немного праздника для владельцев Android устройств.
Идём сюда https://play.google.com/store/apps/details?id=de.resolution.wififixer&hl=ru
Приложение позволяет крутить 3 параметра:
1) порог, при котором будет запущена процедура сканирования и хэндовера
2) дельту уровней между текущей и другими AP, при которой будет выполнено переключение
3) время принудительного рескана окружения
Не требует рута, не ломает прозрачную миграцию (соединения приложений не сбрасываются), по крайней мере на проверенных мной устройствах.
Из минусов – требует включенной геолокации (видимо фоновые сканирования зависят теперь в андроиде от этого, т.к. Aruba Utilites ведут себя так же). Параметров не так много как в случае с прямой правкой конфига драйвера, время срабатывания плавает, возможны побочные эффекты.
Мной работа проверена на Samsung Galaxy A5. При выставленном пороге RSSI в -65 и интервале в 3 секунды, аппарат мигрировал где-то при уровне -68 (без приложения у него миграция стартует при -75, причём сильно не сразу), делал это без обрыва соединений от приложений, использование FT также оставалось на месте, и железка мигрировала, используя короткую процедуру (т.е. это не вкл/выкл wifi, как в аналогичных приложениях). Автор заявляет, что писал это дело для SGS S7/8. Но судя по всему будет работать на всех девайсах с радио от Qualcomm (предположительно начиная с Android 6).
Оптимальные значения лежат в пределах -68 ~ -72 (в зависимости от покрытия вашей сети).
P.S. Кстати автор приложения хоть и в правильную сторону движется, но судя по описанию, не очень догоняет, почему именно так происходит. Попробую ему отписать, заодно выяснить, что там ещё через API (геолокации???) на эту тему доступно. Правда не сейчас….
Вариант решения от CISCO – workaround for android devices do not roam on wifi.