当前位置: 首页 > 知识库问答 >
问题:

如何忘记一个无线网络在Android编程?

曾高杰
2023-03-14

我正在开发一个wifi应用程序,用户将被要求输入他选择的扫描网络的密码,如果用户输入正确的密码,它将连接并正常工作。但是,当用户输入错误的密码时,将使用该名称添加一个新的网络,并且将无法对错误密码的cos进行身份验证,并且将处于身份验证问题状态。

现在,如果用户尝试再次扫描并选择同一网络,并输入正确的密码,则即使现在的密码正确并且将处于禁用状态,它也无法连接,因为以前的连接仍显示身份验证问题状态。

如何解决这个问题?有没有办法忘记使用ConnectivityManager或wifimanager的所有网络?或者其他解决方案?

共有3个答案

郎恺
2023-03-14

您可以使用removeNetwork()方法删除冗余网络连接(尽管我怀疑它们是否具有相同的netId),然后重新添加连接以避免出现问题。

权韬
2023-03-14

WifiManager源代码,有以下方法

/*
 * Delete the network in the supplicant config.
 *
 * This function is used instead of a sequence of removeNetwork()
 * and saveConfiguration().
 *
 * @param config the set of variables that describe the configuration,
 *            contained in a {@link WifiConfiguration} object.
 * @hide
 */

public void forgetNetwork(int netId) {
    if (netId < 0) {
        return;
    }
    mAsyncChannel.sendMessage(CMD_FORGET_NETWORK, netId);
}

但是这个方法是@hide,所以我们不能使用它。但根据这一评论:

此函数用于代替RemveNetwork()SaveConfiguration()的序列

您可以尝试使用:removeNetwork()saveConfiguration()

廖华翰
2023-03-14

是的,removeNetwork()工作正常。我用它来删除所有网络。

List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : list ) {
    wifiManager.removeNetwork(i.networkId);
    //wifiManager.saveConfiguration();  
}

Wifi经理。saveConfiguration()

此方法在API级别26中被弃用。无需调用此方法-addNetwork(WifiConfiguration)、updateNetwork(WifiConfiguration)和removeNetwork(int)已经自动持久化配置。

https://developer.android.com/reference/android/net/wifi/WifiManager.html#saveConfiguration()

 类似资料:
  • 问题内容: 我正在开发一个wifi应用程序,在该应用程序中,将要求用户输入他选择的扫描网络的密码,如果用户输入正确的密码,它将连接并正常运行。但是,当用户输入错误的密码时,将使用该名称添加新的网络,并且将无法对错误密码的cos进行身份验证,并且网络将具有身份验证问题状态。 现在,如果用户尝试再次扫描并选择相同的网络,并输入正确的密码,即使密码现在正确并且将处于禁用状态,它也将无法连接,因为先前的连

  • 场景:一个局域网出现了网络故障。我可远程控制一台局域网内的主机A来进行修复, 该主机A目前链接WIFI_A,但是进行修复网络故障必须链接局域网的wifi WIFI_B,已连接WIFI_B 就会断网,无法再次远程控制,所以一个无线网卡如何同时连接两个wifi

  • 我也找不到CLI可用的哨兵命令列表。像config get这样的东西似乎不起作用。如果有人能给我指向一个链接,那就太棒了!

  • 一面与主管面一起 一面:60min 1. 自我介绍 2. 项目介绍 3. 手撕算法:任务调度(leetcode612)写了半天发现思路错了,然后叫面试官给我换了一个,分发糖果(leetcode135),过了。然后大概介绍思路。 4. 介绍面向对象 5. 介绍java运行时内存区 主管面:20min 1. 自我介绍 2. 项目介绍 3. 项目过程中的困难怎么解决的 4. 家庭介绍 5. 性格介绍 6

  • Android我的设备与wifi连接,但如果wifi已连接,但这些没有互联网连接,该怎么做 以下是我尝试检查是否没有互联网连接的代码 当无法访问互联网时,它总是返回true

  • 本文向大家介绍magento 忘记密码网址,包括了magento 忘记密码网址的使用技巧和注意事项,需要的朋友参考一下 示例 $this->helper('customer/data')->getForgotPasswordUrl(); 要么 Mage::helper('customer/data')->getForgotPasswordUrl();