繁体   English   中英

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

[英]Android - Cant Remove Wifi Network Programatically- The method removeNetwork(int) in the type WifiManager is not applicable for the arguments (String)

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

   }}

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

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();
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM