需要在Android6.0中以编程方式忘记配置的Wifi网络

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配置有一些变化.

如果有人有解决方案,请帮助我.

Asg*_*ani 4

首先,您不需要使用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 对象。

查看Android M 中的网络变化