【问题标题】:Need to forget configured Wifi network programmatically in Android 6.0需要忘记在 Android 6.0 中以编程方式配置的 Wifi 网络
【发布时间】:2018-02-21 07:41:25
【问题描述】:

我已经实现了从我的应用程序以编程方式连接到 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配置有一些变化。

如果有人在 Android 6.0 及更高版本上有解决方案,请帮助我。

【问题讨论】:

    标签: android kotlin wifi wifimanager


    【解决方案1】:

    首先你不需要使用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)
        }  
    

    话虽如此... WifiManager 的 Android M API 发生了一些变化。

    您的应用现在只能更改 WifiConfiguration 对象的状态 如果您创建了这些对象。您不得修改或 删除用户或其他应用创建的 WifiConfiguration 对象。

    Network Changes in Android M

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多