2014-01-26 2 views
0

Я создал wifiap с паролем, но для проекта я хотел бы создать открытую сеть. Я попробовал следующее, но если у вас уже есть пароль, он по-прежнему активен.Как создать открытое 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

Попробуйте удалить эти две строки 'wifiConf.allowedProtocols.set (WifiConfiguration.Protocol.RSN); wifiConf.allowedProtocols.set (WifiConfiguration.Protocol.WPA); ' Еще одна вещь, чтобы попытаться это отключить softAP' setWifiApEnabled (нуль, ложь) 'и снова включить с обновленными конфигурации' setWifiApEnabled (WifiConfig, правда); ' – vishalm

+0

я пытался это, но в моем случае это не помогло. – jonesw

ответ

0

Я нашел решение. Вдохновленный этим ответом, How to programmatically create and read WEP/EAP WiFi configurations in Android?, я получил информацию от wifonfiguration в wifiAP. Это показало, какие поля были установлены в true при настройке wifiAP, используя обычную настройку, предусмотренную в Android. Поэтому, когда я хочу изменить wifiAP с заблокированного на открытый, я установил эти ключи в false. Для моего случая я установил следующие параметры:

wifiConf.preSharedKey = null; 
wifiConf.allowedKeyManagement.set(KeyMgmt.NONE); 
wifiConf.allowedKeyManagement.set(KeyMgmt.WPA2_PSK,false); 
wifiConf.allowedKeyManagement.set(KeyMgmt.WPA_PSK,false); 
Смежные вопросы