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

Android-无法通过编程删除Wifi网络-WifiManager类型中的removeNetwork(int)方法不适用于参数(字符串)

通京
2023-03-14

我试图以编程方式删除我的wifi网络-但是我似乎无法让它删除/忘记当前连接的wifi连接。这应该是一个非常简单的任务——所以我不确定我到底做错了什么。

我以下面的StackOverflow帖子为例:

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

     public class KillTimer extends Activity {

     @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.killtimer);
       WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
       wifiManager.getConnectionInfo().getSSID()
       wifiManager.getConnectionInfo().getNetoworkId();
       wifiManager.removeNetwork(wifiConfig.networkId);
       wifiManager.saveConfiguration();

   }}

共有2个答案

干善
2023-03-14
private void RemoveWifiNetworks() {

    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

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

}
司空高义
2023-03-14

只接受整数参数。networkSSID是一个字符串值。这就是错误的原因。我看到您正在使用SSID,这是一个字符串。您必须给出网络id,它是整数。您可以尝试getConnectionInfo(). getSSID()并与您的ssid进行比较,如果它们相同,那么您可以尝试获取getConnectionInfo(). getNetoworkId(),它应该给出连接网络的网络ID,您可以使用它来删除网络。

试试这个:

public class KillTimer extends Activity {
       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.killtimer);
           WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
           int networkId = wifiManager.getConnectionInfo().getNetworkId();
           wifiManager.removeNetwork(networkId);
           wifiManager.saveConfiguration();
       }}

最新更新截至10六月2019

Android 6.0之后的Wifi Manager有一些变化。

如果WIFI\u Device\u Owner\u CONFIGS\u LOCKDOWN为非零,则用户不能再修改或删除由活动设备所有者创建的任何Wi-Fi配置。

活动设备所有者有权编辑或删除任何Wi-Fi配置,包括非由其创建的配置。

更多详情请参考:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

 类似资料:
  • 问题内容: 我正在尝试以编程方式删除我的wifi网络-但是我似乎无法通过它删除/忘记当前连接的wifi连接。这应该是一个非常简单的任务-所以我不确定我在做什么错。 我以以下帖子为例: 如何以编程方式忘记android中的无线网络? 问题答案: 只接受整数参数。该是一个字符串值。这就是错误的原因。我看到您使用的是字符串SSID。您必须提供网络ID,该ID为整数。您可以尝试将其与ssid进行比较,如果

  • 在阅读了其他几个问题/答案后,我仍然在使用wifiManager时遇到问题。重新安排工作。 根据: Android-无法通过编程删除Wifi网络-WifiManager类型中的removeNetwork(int)方法不适用于参数(字符串) 和 如何忘记一个无线网络在Android编程? ...我的代码应该工作: 然而,当我在API 23上测试时,它不起作用。查看代码时,没有任何内容被贬低,代码在A

  • 问题内容: 好的,所以我是Java的新手,我正在尝试制作我的第一个程序,但收到此消息后,似乎无法修复: 这是代码: 问题答案: 此类错误消息表示您为方法提供的参数类型与预期的参数类型之间存在差异。在这种情况下,它要求一个(Object [])和一个数组,但您要给它一个String和两个Integer。您首先需要将它们打包为数组。

  • 我试图在一个测试中模拟。我在网上找到了一些人们也这么做的例子。 一个例子来自sping-data-elasticsearch,另一个来自一些教程。 这是我自己的例子。 不幸的是,我看到了一些警告。以下是我得到的: 网络客户。RequestHeaderUrispec是原始类型。对泛型类型WebClient的引用。RequestHeaderUrispec应该参数化 当我更改代码并向添加通配符时,我会收

  • 我已经尝试了网络上提供的所有解决方案,但都无效。请尽快提供帮助。同步错误: 生成文件“C:\Users\AH\U GL\Desktop\apps android commons\apps\Build”。格拉德尔线:149 评估项目“:app”时出现问题。 没有方法的签名:build_bacf6ncg9oj63qiyhi1id1rfi.android()适用于参数类型:(build_bacf6ncg

  • 在AndroidM中:我使用下面的代码删除当前连接的WIFI AP。 但是总是返回false。 虽然这个API在以前的版本中运行良好。 使用AndroidM中的任何其他API可以在这个平台上实现任何解决方案? 谢谢。