Мне нужно подключиться к WiFi (esp8266 nodeMCU) в Android программно.
SSID этой сети - Hide, а безопасность - WPA2-PSK.
также он не подключен к интернету, это локальная сеть.
Я пробую этот код, но не могу подключиться к HotSpot.
«enableNetworkBoolean» равно «false». но я могу подключиться к точке доступа в настройках.
public class ConnWifi {
public void Connect(Context context){
WifiConfiguration config = new WifiConfiguration();
config.SSID = ""reyhan112233"";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
config.SSID = "reyhan112233";
}
config.preSharedKey = ""reyhan112233"";
config.hiddenSSID = true;
config.status = WifiConfiguration.Status.ENABLED;
config.allowedGroupCiphers.set(WifiConfiguration.G roupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.G roupCipher.CCMP);
config.allowedKeyManagement.set(WifiConfiguration. KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguratio n.PairwiseCipher.TKIP);
config.allowedPairwiseCiphers.set(WifiConfiguratio n.PairwiseCipher.CCMP);
config.allowedProtocols.set(WifiConfiguration.Prot ocol.RSN);
config.allowedProtocols.set(WifiConfiguration.Prot ocol.WPA);
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI _SERVICE);
int networkId = wifiManager.addNetwork(config);
if(networkId != -1){
connectWifi(config, wifiManager);
}
}
private void connectWifi(WifiConfiguration config , WifiManager wifiManager) {
wifiManager.disconnect();
wifiManager.setWifiEnabled(true);
boolean enableNetworkBoolean = wifiManager.enableNetwork(config.networkId, true);
boolean reconnectBoolean = wifiManager.reconnect();
boolean changeHappen = wifiManager.saveConfiguration();
if(enableNetworkBoolean && reconnectBoolean && changeHappen){
}
else{
}
}