当前位置: 首页 > 面试题库 >

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

唐元青
2023-03-14
问题内容

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

我以以下帖子为例:

如何以编程方式忘记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();

   }}

问题答案:

removeNetwork()只接受整数参数。该networkSSID是一个字符串值。这就是错误的原因。我看到您使用的是字符串SSID。您必须提供网络ID,该ID为整数。您可以尝试getConnectionInfo().getSSID()将其与ssid进行比较,如果它们相同,则可以尝试获取getConnectionInfo().getNetoworkId()哪个ssid,它应提供连接网络的网络ID,您可以使用该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();
       }}

截至2019年6月10日的最新更新

从Android 6.0开始,Wifi Manager进行了一些更改。

如果WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN为非零,则用户将无法再修改或删除由活动设备所有者创建的任何Wi-Fi配置。

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

有关更多详细信息,请参阅:https
:
//developer.android.com/about/versions/marshmallow/android-6.0-changes.html



 类似资料:
  • 我试图以编程方式删除我的wifi网络-但是我似乎无法让它删除/忘记当前连接的wifi连接。这应该是一个非常简单的任务——所以我不确定我到底做错了什么。 我以下面的StackOverflow帖子为例: 如何忘记一个无线网络在Android编程?

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

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

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

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

  • 创建一个名为平均值的方法,用于计算作为参数传递的数字的平均值。之前创建的方法和必须在此方法中使用! 在以下模板中定义方法: 我正在努力将sum()方法放在average()方法中。我不知道如何让它工作,因为我在eclipse中不断遇到这样的错误: 这是我的代码: 我知道这与我将average方法定义为double类型有关,但我尝试将它们改为double,并调用我的变量“int avg=…”作为“双