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

如何忘记一个无线网络在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进行身份验证,并且网络将具有身份验证问题状态。 现在,如果用户尝试再次扫描并选择相同的网络,并输入正确的密码,即使密码现在正确并且将处于禁用状态,它也将无法连接,因为先前的连

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

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

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

  • 网络基础 在互联网上之间的通信交流,一般是基于 TCP (Transmission Control Protocol,传输控制协议) 或者 UDP (User Datagram Protocol,用户数据报协议) ,如下图: 编写 Java 应用,我们只需关注于应用层 (application layer),而不用关心 TCP 和 UDP 所在的传输层是如何实现的。java.net 包含了你编程所

  • 本文向大家介绍python网络编程学习笔记(三):socket网络服务器,包括了python网络编程学习笔记(三):socket网络服务器的使用技巧和注意事项,需要的朋友参考一下 1、TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较。 步骤 TCP客户端 TCP服务器 第一步 建立socket对象  建立socket对象 第二步 调用co