1. 程式人生 > >android 獲取當前隱藏和未隱藏wifi的加密方式(安全性)

android 獲取當前隱藏和未隱藏wifi的加密方式(安全性)

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = mWifiManager.getConnectionInfo();


        // 得到配置好的網路連線
        List<WifiConfiguration> wifiConfigList = mWifiManager.getConfiguredNetworks();
        
        for (WifiConfiguration wifiConfiguration : wifiConfigList) {
            //配置過的SSID
            String configSSid = wifiConfiguration.SSID;
            configSSid = configSSid.replace("\"", "");
            
            //當前連線SSID
            String currentSSid =info.getSSID();
            currentSSid = currentSSid.replace("\"", "");
            
            //比較networkId,防止配置網路儲存相同的SSID
            if (currentSSid.equals(configSSid)&&info.getNetworkId()==wifiConfiguration.networkId) {
                Log.e("hefeng", "當前網路安全性:" + getSecurity(wifiConfiguration));
            }
        }
    }

    /**
     * These values are matched in string arrays -- changes must be kept in sync
     */
    static final int SECURITY_NONE = 0;
    static final int SECURITY_WEP = 1;
    static final int SECURITY_PSK = 2;
    static final int SECURITY_EAP = 3;

    static int getSecurity(WifiConfiguration config) {
        if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
            return SECURITY_PSK;
        }
        if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP) || config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
            return SECURITY_EAP;
        }
        return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE;
    }

這樣就可以獲取到了。這樣做可以避免你的wifi ssid被隱藏了還可以獲取到加密方式