如何创建一个开放的wifi ap?

时间:2014-01-26 23:02:48

标签: android android-wifi wificonfiguration

我创建了一个带密码的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);

1 个答案:

答案 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);