Возможности работы с Wi-Fi:
- • проверка состояния адаптера Wi-Fi (включено, отключено и т.д.);
• изменение состояния Wi-Fi;
• проверка состояния подключения (подключено, отключено и т.д.);
• поиск точек доступа (сканирование);
• подключение к точке;
• чтение и изменение списка известных сетей;
• выполнение DHCP-запроса;
• установка WifiLock. WiFiLock позволяет принуди-тельно оставлять Wi-Fi включенным при переходе телефона в режим ожидания.
Приведем код, устанавливающий соединение с сетью, защи-щенной WPA-PSK. До выполнения этого кода необходимо удостовериться, что Wi-Fi включен или включить его.
- Код: выделить все
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"SSIDName\"";
wc.preSharedKey = "\"password\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
int id = wifi.addNetwork(wc);
boolean success = wifi.enableNetwork(id, true);
В коде создается экземпляр класса android.net.wifi.WifiConfiguration со всеми необходимыми параметрами выбранной сети.
Затем полученная конфигурация добавляется в список известных сетей, при этом запоминаем, какой id был ей присвоен. Остается только подключиться к выбранной сети по запомненному id!
Обратите внимание, что SSID и ключ шифрования должны быть взяты в двойные кавычки!
При работе с Wi-Fi скорее всего могут понадобиться разрешения на доступ к состоянию Wi-Fi ACCESS_WIFI_STATE и на его изменение CHANGE_WIFI_STATE.