Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как принудительно установить HTTP-соединение через Wi-Fi вместо сотовой связи в Android?

Автор вопроса: amsiddhОтветов: 3

Мое приложение должно определить, что устройство, подключенное к сети Wi-Fi, является необходимым, а затем программно запустить HTTP-запрос через эту сеть Wi-Fi. Я искал, но не нашел ни одного метода или класса, который поможет мне это сделать.

Я думал отключить сотовую сеть, чтобы HTTP-запрос шел через сеть Wi-Fi, но даже в этом у меня не было успеха. И еще, можно ли программно включать и отключать сотовые и Wi-Fi сети?

  • Разве устройство не делает это автоматически? И другой вопрос: должны ли вы действительно решать за пользователя, какое интернет-соединение он хочет использовать? markus 02.03.2011
  • Спасибо, Маркус, за твой ответ, я понял, что ты пытаешься сказать, но ты не понял, что мне нужно. (Как и когда мы делаем запросы на HTTP-соединение, платформа Android будет решать, из какой сети он должен проходить, в зависимости от ее доступности.) Но все мое приложение требует, чтобы HTTP-запросы на соединение проходили через Wi-Fi, а не через сотовую связь. Приложение работает с точками доступа Wi-Fi, скажем, когда пользователь находится в сети Wi-Fi abc, затем запускает приложение для аутентификации через http-запрос через сеть Wi-Fi abc. Затем после susscess разрешите пользователю. amsiddh 02.03.2011
  • Почему бы просто не обработать все это на стороне сервера, как это делают большинство интернет-провайдеров Wi-Fi? Тогда вы получаете то, что работает на любом устройстве, не требует установки, отслеживания версий Android и т. д. Chris Stratton 02.03.2011
  • Привет, Крис, я согласен с тобой. Это все требования клиента, и у них уже есть реализация на стороне сервера, как у других провайдеров точек доступа Wi-Fi, и теперь они также хотят иметь собственное приложение. amsiddh 04.03.2011

androidhttpconnectionandroid-wifi

Ответы

Ответ 1 · рейтинг 3 · Robby Pond

Нет никакого способа заставить его использовать тот или иной. Любая доступная сеть используется, будь то 3G или Wi-Fi (если Wi-Fi подключен, 3G отключен). Если вы не хотите что-то делать в зависимости от того, какая сеть используется в данный момент, вы можете проверить, не подключен ли Wi-Fi, и не предпринимать никаких действий, если это так, и запросить пользователя. Карты Google делают что-то подобное, если Локатор включен.

Класс WifiManager содержит множество методов, которые могут быть полезны для ты.

Ответ 2 · рейтинг 2 · Rohit Mandiwal

вы можете использовать setNetworkPrefrence(ConnectivityManager.TYPE_WIFI) класса ConnectivityManager в Android

Ответ 3 · mbonnin

Вы можете использовать OkHttp и собственный SocketFactory. Подробнее см. https://github.com/square/okhttp/issues/2404. Детали.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы