在Android 6.0中,需要编程方式忘记已配置的Wifi网络。

8

我已经在我的应用程序中实现了连接到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://dev59.com/Q1wY5IYBdhLWcg3wU2bA#33075445
由于Android 6.0中WIFI配置发生了一些变化,如果有人能够提供在Android 6.0及以上版本上的解决方案,请帮助我。
1个回答

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)
    }  

话虽如此,Android M中的WifiManager API有了一些变化。

现在,只有当您创建了这些对象时,您的应用程序才能更改WifiConfiguration对象的状态。您不允许修改或删除用户或其他应用程序创建的WifiConfiguration对象。

请参见Android M中的网络更改


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接