问题 如何使用4.3 API连接到Android上的WPA_EAP WIFI


最近Android添加了使用API​​ 18(JellyBean 4.3)连接到EAP WIFI的功能。我已经找了很多例子,但找不到任何例子,我也无法连接我的代码。一切似乎按预期工作,但实际连接似乎不起作用。

这是我正在做的事情:

Log.d( "WiFi", "adding network via Android Enterprise Config with SSID: " + ssid );
                    WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig(); 
                    wifiConfig = new WifiConfiguration();
                    wifiConfig.SSID = ssid; 

                    enterpriseConfig.setIdentity(userName);
                    enterpriseConfig.setPassword(passWord);
                    enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.PEAP); 
                    wifiConfig.enterpriseConfig = enterpriseConfig;
                    Log.i("WIFI", "My wifi"+ wifiConfig.status); 
                    networkId = wfm.addNetwork(wifiConfig);

                    wfm.enableNetwork(networkId, true); // this initiates the connection

无论出于何种原因,都没有建立联系。似乎其他一切设置正确。如果我遗漏了任何东西,请告诉我,我很乐意添加它。

任何帮助或方向将不胜感激。


1975
2017-10-03 22:29


起源



答案:


您需要设置密钥管理

   WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig(); 
   wifiConfig = new WifiConfiguration();
   wifiConfig.SSID = ssid; 
   wifiConfig.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
   wifiConfig.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
   enterpriseConfig.setIdentity(userName);
   enterpriseConfig.setPassword(passWord);
   enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.PEAP); 
   wifiConfig.enterpriseConfig = enterpriseConfig;

14
2017-10-07 23:29



干得好!谢谢!这完全是它所需要的! - BlackHatSamurai
@Blaine你能用上面的代码连接到EAP吗?我能够保存配置但无法连接。 - sankar
@sankar是的,我正准备使用它连接。但是你还必须使用我上面的代码。将两者结合起来进行连接。 - BlackHatSamurai
我们可以使用相同的sim类型的eap? - Prashanth Debbadwar


答案:


您需要设置密钥管理

   WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig(); 
   wifiConfig = new WifiConfiguration();
   wifiConfig.SSID = ssid; 
   wifiConfig.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
   wifiConfig.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
   enterpriseConfig.setIdentity(userName);
   enterpriseConfig.setPassword(passWord);
   enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.PEAP); 
   wifiConfig.enterpriseConfig = enterpriseConfig;

14
2017-10-07 23:29



干得好!谢谢!这完全是它所需要的! - BlackHatSamurai
@Blaine你能用上面的代码连接到EAP吗?我能够保存配置但无法连接。 - sankar
@sankar是的,我正准备使用它连接。但是你还必须使用我上面的代码。将两者结合起来进行连接。 - BlackHatSamurai
我们可以使用相同的sim类型的eap? - Prashanth Debbadwar