9

我正在尝试以编程方式删除我的 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();

   }}
4

2 回答 2

10

removeNetwork()只接受整数参数。是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();
       }}

截至 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

于 2013-04-17T06:41:40.003 回答
4
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();
    }

}
于 2015-10-19T17:00:56.750 回答