由于我正在编写api,其中用户将传递SSID和密码作为参数。我尝试从SSID获取网络Id以忘记特定的wifi。
发布于 2019-07-24 19:41:41
我确信,如果您的设备正在保存特定的WiFi网络,它只会保存SSID和密码。例如,如果您使用与家庭网络相同的SSID和密码建立WiFi热点,您的手机将自动连接到该热点。这就是为什么保存开放网络是不安全的。你永远不会知道谁在另一边。
我没有尝试过这个,但是看起来你需要做的就是这样:
WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<WifiConfiguration> list = wifiMgr.getConfiguredNetworks();
for(WifiConfiguration config : list){
if("your_ssid".equals(config.SSID)){
wifiMgr.removeNetwork(config.networkId)
}
}如果你的目标是API >= 29,你应该使用
wifiMgr.removeNetworkSuggestions (List<WifiNetworkSuggestion> networkSuggestions)你可以构建这样的建议:
final WifiNetworkSuggestion suggestion1 = new Builder()
.setSsid("test111111")
.build()
final WifiNetworkSuggestion suggestion2 = new Builder()
.setSsid("test222222")
.setWpa2Passphrase("test123456")
.build()
final WifiNetworkSuggestion suggestion3 = new Builder()
.setSsid("test333333")
.setWpa3Passphrase("test6789")
.build()更多信息:https://developer.android.com/reference/android/net/wifi/WifiManager.html#removeNetworkSuggestions(java.util.List%3Candroid.net.wifi.WifiNetworkSuggestion%3E) https://developer.android.com/reference/android/net/wifi/WifiNetworkSuggestion.Builder.html#build()
https://stackoverflow.com/questions/57178872
复制相似问题