Ich bräuchte eure Hilfe. Ich kenne mit WifiManager nicht aus. Ich habe einen Code geschrieben, wo das Internet ein oder ausgeschaltet wird. Wenn das Internet eingeschalten ist, soll die App mit dem Internet verbinden. Dafür habe ich einen Code gefunden, der aber bei mir komplett rot wird. Wie kann ich mit dem Internet verbinden, mit hilfe des WifiManager? Was sagt ihr zu diesem Code? Warum funktioniert er nicht bei mir? Wie kann ich das besser machen? Gibt es ein Code, der genau dass macht, was der unterer Code machen soll(evtl. in 1 - 2 Zeilen)?
Java:
String networkSSID = "test";
String networkPass = "pass";
WifiManager wmgr = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wmgr.setWifiEnabled(true);
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = """ + networkSSID + """;
// Please note the quotes.String should contain ssid in quotes
Then, for WEP network you need to do this:
conf.wepKeys[0] = """ + networkPass + """;
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
For WPA network you need to add passphrase like this:
conf.preSharedKey = """+ networkPass +""";
For Open network you need to do this:
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
Then, you need to add it to Android wifi manager settings:
WifiManager wifiManager =
(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
And finally, you might need to enable it, so Android connects to it:
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
if(i.SSID != null && i.SSID.equals(""" + networkSSID + """)) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
break;
}
}