Примитивный способ сделать это - следить за событиями отключения сети. Ваша последовательность будет:
Регистрация / опрос для изменений состояния сетевых подключений. Поддерживать список всех активных сетевых подключений.
Используйте первое доступное сетевое соединение (в качестве альтернативы вы можете отсортировать его по пропускной способности интерфейса и использовать соединение с самой высокой пропускной способностью).
При обнаружении сбоя соединения используйте следующее активное соединение.
Однако, если есть какие-то последствия для функциональности вашего приложения, в зависимости от того, какое сетевое соединение вы используете, вам будет гораздо лучше, если за вас будет работать протокол маршрутизации или приложение для отслеживания в вашем приложении. Это приложение отслеживания будет отслеживать сетевые пути (с помощью различных методов, таких как ping, traceroute и т. Д.) Через все доступные интерфейсы, чтобы определить, какой из них может достичь конечного пункта назначения, и использовать соответствующий сетевой интерфейс.
Кроме того, вы можете отслеживать свои сетевые интерфейсы не только на предмет изменения статуса, но и на наличие ошибок ввода / вывода, и соответственно изменять свой выбор. Это поможет вам использовать наиболее эффективную сеть в любой момент времени. Но это должно быть сбалансировано с оттоком, вызванным переключением сетевого подключения.