无法使用wifiManager连接WIFI
Unable to connect with WIFI using wifiManger
我正在尝试连接特定的 wifi,但无法正常工作。每当我调用下面的代码时,已经连接的 wifi 就会停止并且 phone 在扫描模式下显示 wifi。谁能告诉我为什么会这样。这是我的代码:
String result = "";
try {
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", ssid);
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
int state = wifiManager.getWifiState();
Log.i(TAG, "state: " + state);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String newSSID = wifiInfo.getSSID();
result = "Connected";
} catch (Exception e) {
result = "Failed";
Log.e(TAG, "unable to set wifi " + ssid, e);
}
我认为你不应该再添加SSID。此代码 wifiManager.addNetwork(wifiConfig)
正在向您的设备添加另一个 wifi 配置文件。
您只需要以下代码即可重新连接
private boolean connectToWifi(String ssid) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> wifiList = wifiManager.getConfiguredNetworks();
for( WifiConfiguration config : wifiList ) {
if(config.SSID != null && config.SSID.equals("\"" + ssid + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(config.networkId, true);
wifiManager.reconnect();
return true;
}
}
return false;
}
我正在尝试连接特定的 wifi,但无法正常工作。每当我调用下面的代码时,已经连接的 wifi 就会停止并且 phone 在扫描模式下显示 wifi。谁能告诉我为什么会这样。这是我的代码:
String result = "";
try {
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", ssid);
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
int state = wifiManager.getWifiState();
Log.i(TAG, "state: " + state);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String newSSID = wifiInfo.getSSID();
result = "Connected";
} catch (Exception e) {
result = "Failed";
Log.e(TAG, "unable to set wifi " + ssid, e);
}
我认为你不应该再添加SSID。此代码 wifiManager.addNetwork(wifiConfig)
正在向您的设备添加另一个 wifi 配置文件。
您只需要以下代码即可重新连接
private boolean connectToWifi(String ssid) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> wifiList = wifiManager.getConfiguredNetworks();
for( WifiConfiguration config : wifiList ) {
if(config.SSID != null && config.SSID.equals("\"" + ssid + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(config.networkId, true);
wifiManager.reconnect();
return true;
}
}
return false;
}