如何在Android 4.3 API上连接WPA_EAP WIFI

12

最近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

由于某种原因,连接没有建立。看起来其他所有的设置都正确。如果我漏掉了什么,请告诉我,我会很乐意添加。

非常感谢任何帮助或指导。

1个回答

21

您需要设置密钥管理

   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;

@Blaine,你能否使用上述代码连接到EAP?我可以保存配置但无法连接。 - Sankar
@sankar 是的,我正要使用这个来连接。但你也必须使用我上面提供的代码。将两者结合起来进行连接。 - BlackHatSamurai
我们可以在SIM类型的EAP中使用相同的吗? - Prashanth Debbadwar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接