Отправить запрос POST только через интерфейс WiFi - PullRequest
0 голосов
/ 18 января 2019

У меня есть чип с модулем WiFi, который действует как точка доступа. Я пытаюсь подключиться к точке доступа (которая не имеет доступа к Интернету), отправить запрос POST на локальный адрес (http://192.168.4.1/address) и получить ответ от чипа. Я пишу приложение для Android, который должен делать это (и это делает большую часть времени).

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

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

Я много искал об этой проблеме, и пока ничего не нашел.

1 Ответ

0 голосов
/ 18 января 2019

Начиная с Android 5 (API 21), вы можете принудительно устанавливать соединения для использования WiFi, даже если это не сеть по умолчанию.

Одним из решений является поиск соответствующей сети, например, с ConnectivityManager.getAllNetworks() и ConnectivityManager.getNetworkInfo():

Как только вы получите Network, вы можете либо:

См. Подключение вашего приложения к устройству Wi-Fi (особенно Маршрутизация сетевых запросов ) для получения более подробной информации.

...