我在一个应用程序,其中wifi,其中用户将被要求输入他选择的扫描网络的密码,如果用户输入正确的密码,它连接和工作良好。但是当用户输入错误的密码时,会添加一个具有该名称的新网络,该网络将因为密码错误而无法进行身份验证,并且将处于身份验证问题状态。
现在,如果用户尝试再次扫描并选择相同的网络,并输入正确的密码,则即使密码正确,它也无法连接,并且将处于禁用状态,因为以前的连接仍显示该身份验证问题状态。
如何解决这个问题?有没有办法忘记所有使用ConnectivityManager或wifimanager的网络?或任何其他解决方案?
发布于 2012-06-21 16:40:26
您可以使用removeNetwork()
方法删除冗余的网络连接(尽管我怀疑它们是否具有相同的netId
),然后重新添加连接以避免您遇到的问题。
发布于 2017-10-10 21:46:24
wifiManager.saveConfiguration();
不再需要调用saveConfiguration,因为removeNetwork(int)已经自动持久化配置。
https://developer.android.com/reference/android/net/wifi/WifiManager.html#saveConfiguration()
发布于 2017-05-15 22:57:40
通过这样做,可以获得列表中配置的网络列表,然后立即执行删除和保存。
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
wifiManager.removeNetwork(i.networkId);
wifiManager.saveConfiguration();
}
https://stackoverflow.com/questions/11134383
复制相似问题