android.net.wifi.WifiConfiguration.KeyMgmt Java Examples

The following examples show how to use android.net.wifi.WifiConfiguration.KeyMgmt. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Patch.java    From wifi-password-android with Apache License 2.0 6 votes vote down vote up
private String getWiFiPassword(Context context, int networkId) {
    final WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    @SuppressWarnings("unchecked")
    final List<WifiConfiguration> list = (List<WifiConfiguration>) XposedHelpers.callMethod(wifiManager, "getPrivilegedConfiguredNetworks");

    String pwd;
    for (WifiConfiguration config : list) {
        if (config.networkId == networkId) {
            if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
                pwd = config.preSharedKey;
            } else {
                pwd = config.wepKeys[config.wepTxKeyIndex];
            }

            if (pwd != null) {
                return pwd.replaceAll("^\"|\"$", "");
            }
        }
    }

    return null;
}
 
Example #2
Source File: WifiUtils.java    From DevUtils with Apache License 2.0 5 votes vote down vote up
/**
 * 获取 Wifi 加密类型
 * @param wifiConfig Wifi 配置信息
 * @return Wifi 加密类型
 */
public static int getSecurity(final WifiConfiguration wifiConfig) {
    if (wifiConfig == null) return SECURITY_NONE;
    if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
        return SECURITY_PSK;
    }
    if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_EAP)
            || wifiConfig.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
        return SECURITY_EAP;
    }
    return (wifiConfig.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE;
}
 
Example #3
Source File: NetworkConnectionUtils.java    From YiZhi with Apache License 2.0 5 votes vote down vote up
/**
 * 连接指定
 *
 * @param manager
 * @param wifiSSID
 * @return
 */
public static boolean connectToSocketWifi(WifiManager manager, String wifiSSID) {
    LogUtils.i("要连接的socket wifi====>" + wifiSSID);
    WifiConfiguration wifiConfiguration = new WifiConfiguration();
    wifiConfiguration.SSID = "\"" + wifiSSID + "\"";
    wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE);
    wifiConfiguration.wepKeys[0] = "\"" + "\""; //小米手机MIUI7/华为EMUI4.1 需要webKey

    int networkId = manager.addNetwork(wifiConfiguration);

    if (networkId != -1) {
        manager.enableNetwork(networkId, true);
        e("连接设备成功");
        return true;
    } else {
        e("第一次连接失败,尝试第二次。");
        WifiConfiguration wifiConfiguration2 = new WifiConfiguration();
        wifiConfiguration2.SSID = "\"" + wifiSSID + "\"";
        //wifiConfiguration.wepKeys[0] = "\"" + "\"";//去掉webKey  //小米手机MIUI8不能有webKey
        wifiConfiguration2.allowedKeyManagement.set(KeyMgmt.NONE);
        networkId = manager.addNetwork(wifiConfiguration2);
        if (networkId != -1) {
            manager.enableNetwork(networkId, true);
            e("连接设备成功");
            return true;
        }
        e("连接设备失败");
    }
    return false;
}
 
Example #4
Source File: NetworkConnectionUtils.java    From YiZhi with Apache License 2.0 5 votes vote down vote up
/**
 * 获取要连接的wifi节点各个配置选项的加密类型
 *
 * @param ssid
 * @return wifiConfiguration
 */
public static WifiConfiguration getWifiConfiguration(WifiManager manager, String ssid, String
        password) {
    WifiConfiguration wifiConfiguration = new WifiConfiguration();
    wifiConfiguration.SSID = "\"" + ssid + "\"";

    List<ScanResult> list = manager.getScanResults();
    for (ScanResult scResult : list) {
        if (ssid.equals(scResult.SSID)) {
            String capabilities = scResult.capabilities;
            LogUtils.i("capabilities=" + capabilities);
            if (capabilities.contains("WEP") || capabilities.contains("wep")) {
                wifiConfiguration.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
                wifiConfiguration.preSharedKey = "\"" + password + "\"";
                LogUtils.i("wep");
            } else if (capabilities.contains("WPA") || capabilities.contains("wpa")) {
                wifiConfiguration.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
                wifiConfiguration.preSharedKey = "\"" + password + "\"";
                LogUtils.i("wpa");
            } else {
                wifiConfiguration.allowedKeyManagement.set(KeyMgmt.NONE);
                LogUtils.i("none");
            }
        }
    }
    return wifiConfiguration;
}
 
Example #5
Source File: WiFi.java    From WifiConnecter with Apache License 2.0 5 votes vote down vote up
/**
 * @return The security of a given {@link WifiConfiguration}.
 */
static public String getWifiConfigurationSecurity(WifiConfiguration wifiConfig) {

    if (wifiConfig.allowedKeyManagement.get(KeyMgmt.NONE)) {
        // If we never set group ciphers, wpa_supplicant puts all of them.
        // For open, we don't set group ciphers.
        // For WEP, we specifically only set WEP40 and WEP104, so CCMP
        // and TKIP should not be there.
        if (!wifiConfig.allowedGroupCiphers.get(GroupCipher.CCMP)
                && (wifiConfig.allowedGroupCiphers.get(GroupCipher.WEP40)
                        || wifiConfig.allowedGroupCiphers.get(GroupCipher.WEP104))) {
            return WEP;
        } else {
            return OPEN;
        }
    } else if (wifiConfig.allowedProtocols.get(Protocol.RSN)) {
        return WPA2;
    } else if (wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_EAP)) {
        return WPA_EAP;
    } else if (wifiConfig.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
        return IEEE8021X;
    } else if (wifiConfig.allowedProtocols.get(Protocol.WPA)) {
        return WPA;
    } else {
        Log.w(TAG, "Unknown security type from WifiConfiguration, falling back on open.");
        return OPEN;
    }
}
 
Example #6
Source File: WifiUtils.java    From DevUtils with Apache License 2.0 4 votes vote down vote up
/**
     * 创建 Wifi 配置信息
     * @param ssid      Wifi ssid
     * @param pwd       Wifi 密码
     * @param type      Wifi 加密类型
     * @param isHandler 是否处理双引号
     * @return {@link WifiConfiguration}
     */
    public static WifiConfiguration createWifiConfig(final String ssid, final String pwd, final int type, final boolean isHandler) {
        try {
            // 创建一个新的网络配置
            WifiConfiguration wifiConfig = new WifiConfiguration();
            wifiConfig.allowedAuthAlgorithms.clear();
            wifiConfig.allowedGroupCiphers.clear();
            wifiConfig.allowedKeyManagement.clear();
            wifiConfig.allowedPairwiseCiphers.clear();
            wifiConfig.allowedProtocols.clear();
            wifiConfig.priority = 0;
            // 设置连接的 SSID
            if (isHandler) {
                wifiConfig.SSID = formatSSID(ssid, true);
            } else {
                wifiConfig.SSID = ssid;
            }
            switch (type) {
                case WifiUtils.NOPWD: // 不存在密码
                    wifiConfig.hiddenSSID = true;
                    wifiConfig.allowedKeyManagement.set(KeyMgmt.NONE);
                    break;
                case WifiUtils.WEP: // WEP 加密方式
                    wifiConfig.hiddenSSID = true;
                    if (isHandler) {
                        if (isHexWepKey(pwd)) {
                            wifiConfig.wepKeys[0] = pwd;
                        } else {
                            wifiConfig.wepKeys[0] = "\"" + pwd + "\"";
                        }
                    } else {
                        wifiConfig.wepKeys[0] = pwd;
                    }
                    wifiConfig.allowedKeyManagement.set(KeyMgmt.NONE);
                    wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
                    // wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
                    wifiConfig.wepTxKeyIndex = 0;
                    break;
                case WifiUtils.WPA: // WPA 加密方式
                    if (isHandler) {
                        wifiConfig.preSharedKey = "\"" + pwd + "\"";
                    } else {
                        wifiConfig.preSharedKey = pwd;
                    }
                    wifiConfig.hiddenSSID = true;
                    wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
                    wifiConfig.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
//					wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                    wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                    wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                    wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                    wifiConfig.status = WifiConfiguration.Status.ENABLED;
                    break;
            }
            return wifiConfig;
        } catch (Exception e) {
            LogPrintUtils.eTag(TAG, e, "createWifiConfig");
        }
        return null;
    }
 
Example #7
Source File: WifiAutoConnectManager.java    From GOpenSource_AppKit_Android_AS with MIT License 4 votes vote down vote up
private WifiConfiguration createWifiInfo(String SSID, String Password,
		WifiCipherType Type) {
	WifiConfiguration config = new WifiConfiguration();
	config.allowedAuthAlgorithms.clear();
	config.allowedGroupCiphers.clear();
	config.allowedKeyManagement.clear();
	config.allowedPairwiseCiphers.clear();
	config.allowedProtocols.clear();
	config.SSID = "\"" + SSID + "\"";
	// config.SSID = SSID;
	// nopass
	if (Type == WifiCipherType.WIFICIPHER_NOPASS) {
		// config.wepKeys[0] = "";
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
		// config.wepTxKeyIndex = 0;
	}
	// wep
	if (Type == WifiCipherType.WIFICIPHER_WEP) {
		if (!TextUtils.isEmpty(Password)) {
			if (isHexWepKey(Password)) {
				config.wepKeys[0] = Password;
			} else {
				config.wepKeys[0] = "\"" + Password + "\"";
			}
		}
		config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
		config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
		config.allowedKeyManagement.set(KeyMgmt.NONE);
		config.wepTxKeyIndex = 0;
	}
	// wpa
	if (Type == WifiCipherType.WIFICIPHER_WPA) {
		config.preSharedKey = "\"" + Password + "\"";
		config.hiddenSSID = true;
		config.allowedAuthAlgorithms
				.set(WifiConfiguration.AuthAlgorithm.OPEN);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
		config.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.TKIP);
		// 此处需要修改否则不能自动重联
		// config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
		config.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.CCMP);
		config.status = WifiConfiguration.Status.ENABLED;

	}
	return config;
}
 
Example #8
Source File: WifiAutoConnectManager.java    From Gizwits-SmartBuld_Android with MIT License 4 votes vote down vote up
private WifiConfiguration createWifiInfo(String SSID, String Password, WifiCipherType Type) {
	WifiConfiguration config = new WifiConfiguration();
	config.allowedAuthAlgorithms.clear();
	config.allowedGroupCiphers.clear();
	config.allowedKeyManagement.clear();
	config.allowedPairwiseCiphers.clear();
	config.allowedProtocols.clear();
	config.SSID = "\"" + SSID + "\"";
	// nopass
	if (Type == WifiCipherType.WIFICIPHER_NOPASS) {
		// config.wepKeys[0] = "";
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
		// config.wepTxKeyIndex = 0;
	}
	// wep
	if (Type == WifiCipherType.WIFICIPHER_WEP) {
		if (!TextUtils.isEmpty(Password)) {
			if (isHexWepKey(Password)) {
				config.wepKeys[0] = Password;
			} else {
				config.wepKeys[0] = "\"" + Password + "\"";
			}
		}
		config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
		config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
		config.allowedKeyManagement.set(KeyMgmt.NONE);
		config.wepTxKeyIndex = 0;
	}
	// wpa
	if (Type == WifiCipherType.WIFICIPHER_WPA) {
		config.preSharedKey = "\"" + Password + "\"";
		config.hiddenSSID = true;
		config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
		config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
		// 此处需要修改否则不能自动重联
		// config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
		config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
		config.status = WifiConfiguration.Status.ENABLED;

	}
	return config;
}
 
Example #9
Source File: WifiAutoConnectManager.java    From gokit-android with MIT License 4 votes vote down vote up
private WifiConfiguration createWifiInfo(String SSID, String Password,
		WifiCipherType Type) {
	WifiConfiguration config = new WifiConfiguration();
	config.allowedAuthAlgorithms.clear();
	config.allowedGroupCiphers.clear();
	config.allowedKeyManagement.clear();
	config.allowedPairwiseCiphers.clear();
	config.allowedProtocols.clear();
	config.SSID = "\"" + SSID + "\"";
	// config.SSID = SSID;
	// nopass
	if (Type == WifiCipherType.WIFICIPHER_NOPASS) {
		// config.wepKeys[0] = "";
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
		// config.wepTxKeyIndex = 0;
	}
	// wep
	if (Type == WifiCipherType.WIFICIPHER_WEP) {
		if (!TextUtils.isEmpty(Password)) {
			if (isHexWepKey(Password)) {
				config.wepKeys[0] = Password;
			} else {
				config.wepKeys[0] = "\"" + Password + "\"";
			}
		}
		config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
		config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
		config.allowedKeyManagement.set(KeyMgmt.NONE);
		config.wepTxKeyIndex = 0;
	}
	// wpa
	if (Type == WifiCipherType.WIFICIPHER_WPA) {
		config.preSharedKey = "\"" + Password + "\"";
		config.hiddenSSID = true;
		config.allowedAuthAlgorithms
				.set(WifiConfiguration.AuthAlgorithm.OPEN);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
		config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
		config.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.TKIP);
		// 此处需要修改否则不能自动重联
		// config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
		config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
		config.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.CCMP);
		config.status = WifiConfiguration.Status.ENABLED;

	}
	return config;
}
 
Example #10
Source File: WiFi.java    From WifiConnecter with Apache License 2.0 4 votes vote down vote up
/**
    * Fill in the security fields of WifiConfiguration config.
    * @param config The object to fill.
    * @param security If is OPEN, password is ignored.
    * @param password Password of the network if security is not OPEN.
    */
static private void setupSecurity(WifiConfiguration config, String security, final String password) {
       config.allowedAuthAlgorithms.clear();
       config.allowedGroupCiphers.clear();
       config.allowedKeyManagement.clear();
       config.allowedPairwiseCiphers.clear();
       config.allowedProtocols.clear();
       
       if (TextUtils.isEmpty(security)) {
           security = OPEN;
           Log.w(TAG, "Empty security, assuming open");
       }
       
       if (security.equals(WEP)) {
       	 int wepPasswordType = WEP_PASSWORD_AUTO;
           // If password is empty, it should be left untouched
           if (!TextUtils.isEmpty(password)) {
			if (wepPasswordType == WEP_PASSWORD_AUTO) {
                   if (isHexWepKey(password)) {
                       config.wepKeys[0] = password;
                   } else {
                       config.wepKeys[0] = StringUtils.convertToQuotedString(password);
                   }
               } else {
                   config.wepKeys[0] = wepPasswordType == WEP_PASSWORD_ASCII
                           ? StringUtils.convertToQuotedString(password)
                           : password;
               }
           }
           
           config.wepTxKeyIndex = 0;
           
           config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
           config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);

           config.allowedKeyManagement.set(KeyMgmt.NONE);
           
           config.allowedGroupCiphers.set(GroupCipher.WEP40);
           config.allowedGroupCiphers.set(GroupCipher.WEP104);
           
       } else if (security.equals(WPA) || security.equals(WPA2)){
           config.allowedGroupCiphers.set(GroupCipher.TKIP);
           config.allowedGroupCiphers.set(GroupCipher.CCMP);
           
           config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
           
           config.allowedPairwiseCiphers.set(PairwiseCipher.CCMP);
           config.allowedPairwiseCiphers.set(PairwiseCipher.TKIP);

           config.allowedProtocols.set(security.equals(WPA2) ? Protocol.RSN : Protocol.WPA);
           
           // If password is empty, it should be left untouched
           if (!TextUtils.isEmpty(password)) {
               if (password.length() == 64 && isHex(password)) {
                   // Goes unquoted as hex
                   config.preSharedKey = password;
               } else {
                   // Goes quoted as ASCII
                   config.preSharedKey = StringUtils.convertToQuotedString(password);
               }
           }
           
       } else if (security.equals(OPEN)) {
           config.allowedKeyManagement.set(KeyMgmt.NONE);
       } else if (security.equals(WPA_EAP) || security.equals(IEEE8021X)) {
           config.allowedGroupCiphers.set(GroupCipher.TKIP);
           config.allowedGroupCiphers.set(GroupCipher.CCMP);
           if (security.equals(WPA_EAP)) {
               config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
           } else {
               config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
           }
           if (!TextUtils.isEmpty(password)) {
               config.preSharedKey = StringUtils.convertToQuotedString(password);
           }
       }
   }