代码之家  ›  专栏  ›  技术社区  ›  BlackHatSamurai

如何使用4.3 API在Android上连接WPA_EAP WIFI

  •  12
  • BlackHatSamurai  · 技术社区  · 11 年前

    最近,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 回复  |  直到 11 年前
        1
  •  21
  •   blganesh101    11 年前

    您需要设置密钥管理

       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;