如何在Android6.0中以编程方式关闭配置的Wifi网络?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (279)

我已经实现了系统以编程方式从我的应用程序连接到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()
    }    

我还提到了以下链接: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)
    }  

扫码关注云+社区

领取腾讯云代金券