Kis*_*rma 6 android wifi wifimanager kotlin
我已经实现了系统以编程方式从我的应用程序连接到wifi网络,现在我想从应用程序以编程方式忘记配置的wifi网络.我已经将它实现到我的应用程序中,并且它在Android 5.0和更低版本的设备上运行良好(少于API 22).对于Android 6.0及更高版本的设备,它不起作用(高于和等于API 23).
请参考以下代码:
val wifiManager = this@SelectWifiSettingsActivity.baseContext!!.getSystemService(android.content.Context.WIFI_SERVICE) as WifiManager
val list = wifiManager.configuredNetworks
for (i in list) {
wifiManager.disableNetwork(i.networkId)
wifiManager.saveConfiguration()
}
Run Code Online (Sandbox Code Playgroud)
我还提到了以下链接:https: //stackoverflow.com/a/33075445/9360112
由于Android 6.0中的WiFi配置有一些变化.
如果有人有解决方案,请帮助我.
首先,您不需要使用saveConfiguration()。
此方法在 API 级别 26 中已弃用。
无需调用此方法 - addNetwork(WifiConfiguration)、updateNetwork(WifiConfiguration) 和removeNetwork(int) 已自动保留配置。
其次,您要寻找的是removeNetwork()。
您的代码将如下所示:
val wifiManager = this@SelectWifiSettingsActivity.baseContext!!.getSystemService(android.content.Context.WIFI_SERVICE) as WifiManager
val list = wifiManager.configuredNetworks
for (i in list) {
wifiManager.removeNetwork(i.networkId)
}
Run Code Online (Sandbox Code Playgroud)
话虽这么说... WifiManager 的 Android M API 发生了一些变化。
现在,仅当您创建了 WifiConfiguration 对象时,您的应用程序才可以更改这些对象。您不得修改或删除用户或其他应用程序创建的 WifiConfiguration 对象。