我创建了一个带密码的wifiap,但对于一个项目,我想创建一个开放的网络。我尝试过以下操作,但如果已经有密码,那么它仍处于活动状态。
Method getWifiConfig = mWifiManager.getClass().getMethod("getWifiApConfiguration",null);
WifiConfiguration wifiConf = (WifiConfiguration)getWifiConfig.invoke(mWifiManager, null);
wifiConf.SSID = "enny";
//wifiConf.preSharedKey = "fuunnv12345";
wifiConf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wifiConf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConf.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiConf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
Method setWifiConfig = mWifiManager.getClass().getMethod("setWifiApConfiguration",WifiConfiguration.class);
setWifiConfig.invoke(mWifiManager,wifiConf);
Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method.invoke(mWifiManager, null, enabled);
答案 0 :(得分:0)
我找到了解决方案。受到这个答案How to programmatically create and read WEP/EAP WiFi configurations in Android?的启发,我从wifiAP中的wificonfiguration获得了信息。这显示了使用Android中提供的常规设置配置wifiAP时哪些字段设置为true。因此,当我想将wifiAP从锁定更改为打开时,我将这些键设置为false。 对于我的情况,我设置了以下参数:
wifiConf.preSharedKey = null;
wifiConf.allowedKeyManagement.set(KeyMgmt.NONE);
wifiConf.allowedKeyManagement.set(KeyMgmt.WPA2_PSK,false);
wifiConf.allowedKeyManagement.set(KeyMgmt.WPA_PSK,false);