Как связать гнездо Android с конкретным сетевым интерфейсом (Wi-Fi/Cellular)Android

Форум для тех, кто программирует под Android
Anonymous
Как связать гнездо Android с конкретным сетевым интерфейсом (Wi-Fi/Cellular)

Сообщение Anonymous »

Я пытаюсь отправить данные по конкретному сетевому интерфейсу (Wi-Fi или сотовой связи) на Android, но все методы, которые я пытался, просто возвращают основной сетевой интерфейс. В общем, это означает, что Android возвращает Wi-Fi, когда он доступен или сотовый, когда это не так. Я бы предпочел сеть , потому что я могу использовать его фабрику сокетов с OKTTP, но если это невозможно, я в порядке с привязкой сокета с конкретным интерфейсом и выполнением работы HTTP. class = "Lang-Kotlin PrettyPrint-Override">

Код: Выделить всё

val networkRequest = NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build()
< /code>
Я также попытался зарегистрировать отдельные запросы для конкретных типов сети: < /p>
val wifiNetworkRequest = NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build()

val cellularNetworkRequest = NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.build()
Все это, по -видимому, работают так же, как RegisterDefaultnetworkCallback . Более новые RegisterBestMatchingNetworkCallback и устаревшие getallnetworks также возвращают только активную сеть. /> getifaddrs < /h1>
Моя окончательная попытка, потому что я понял, что что-то будет вести иначе, это будет C-API на основе низкого уровня, но, к сожалению, это ведет себя так же, как и все другие методы. < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... i-cellular

Вернуться в «Android»