Как подключиться к определенной сети Wi-Fi в Android программно?
Я хочу создать приложение, которое показывает список доступных сетей Wi-Fi и подключается к любой сети, выбранной пользователем.
я реализовал часть, показывающую результаты сканирования. Теперь я хочу подключиться к определенной сети, выбранной пользователем из списка результатов сканирования.
Как мне это сделать?
10 ответов:
затем, для WEP сети вам нужно сделать это:
для сети WPA вам нужно добавить парольную фразу следующим образом:
для открытой сети вам нужно сделать это:
затем вам нужно добавить его в Настройки Android wifi manager:
и, наконец, вам может потребоваться включить его, поэтому Android подключается к это:
UPD: в случае WEP, если ваш пароль находится в hex, вам не нужно окружать его кавычками.
на более ранний ответ работает, но решение на самом деле может быть проще. Цикл по списку настроенных сетей не требуется, так как вы получаете идентификатор сети при добавлении сети через WifiManager.
Итак полное, упрощенное решение будет выглядеть примерно так:
перед подключением Wi-Fi сети вам нужно проверить тип безопасности Wi-Fi сети ScanResult класс имеет возможности. Это поле дает вам тип сети
здесь три типа сетей WIFI.
сначала создайте экземпляр объекта WifiConfiguration и заполните SSID сети (обратите внимание, что он должен быть заключен в двойные кавычки), установить начальное состояние отключено и указать приоритет сети (номера вокруг 40, похоже, работают хорошо).
теперь более сложная часть: нам нужно заполнить несколько членов WifiConfiguration, чтобы указать режим безопасности сети. Для открытых сетей.
для сетей, использующих WEP; обратите внимание, что ключ WEP также заключен в двойные кавычки.
для сетей используя WPA и WPA2, мы можем установите одинаковые значения для любого из них.
наконец, мы можем добавить сеть в известный список WifiManager
решение, которое сработало для меня, — это комбинация вышеуказанных участников в этой теме.
и ScanResult здесь процесс.
вам нужно будет подкласс этого действия и реализовать его методы:
Если ваше устройство знает конфигурации Wifi (уже сохраненные), мы можем обойти ракетостроение. Просто пройдите через конфигурации и проверьте, соответствует ли SSID. Если да, то подключитесь и возвращение.
Я сломал голову, чтобы понять, почему ваши ответы на WPA / WPA2 не работают. после часа попыток, я нашел то, что вам не хватает:
требуется для информационной безопасности.
попробовать этот метод. Это очень просто:
Я также пытался подключиться к сети. Ни одно из предложенных выше решений не работает для hugerock t70. WiFiManager, с помощью функции.disconnect (); не отключается от текущей сети. И поэтому не удается повторно подключиться к указанной сети. Я изменил приведенный выше код. Для меня код bolow работает отлично:
Источник