android wifi(三)

这篇博客主要探讨了如何在Android平台上进行WiFi网络的添加操作。通过SSID、密码和WiFi类型,详细介绍了如何创建并配置WifiConfiguration对象来连接WiFi网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wifi添加网络。首先通过ssid,密码,以及wifi类型创建一个WifiConfiguration.

private WifiConfiguration getNewConfig(String ssid, String password, int security) {

		WifiConfiguration config = new WifiConfiguration();
		config.SSID = AccessPoint.convertToQuotedString(ssid);
		config.hiddenSSID = true;

		switch (security) {
		// none
		case AccessPoint.SECURITY_NONE:
			config.allowedKeyManagement.set(KeyMgmt.NONE);
			break;

		//此处密码需要大于等于五位,其实正确的密码应该是10,26,58,且是16进制
		// wep
		case AccessPoint.SECURITY_WEP:
			config.allowedKeyManagement.set(KeyMgmt.NONE);
			config.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
			config.allowedAuthAlgorithms.set(AuthAlgorithm.SHARED);
			int length = password.length();
			// WEP-40, WEP-104, and 256-bit WEP (WEP-232?)
			if ((length == 10 || length == 26 || length == 58) && password.matches("[0-9A-Fa-f]*")) {
				config.wepKeys[0] = password;
			} else {
				config.wepKeys[0] = '"' + password + '"';
			}
			break;

		//此处密码需要大于等于8位
		// psk
		case AccessPoint.SECURITY_PSK:
			config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
			if (password.matches("[0-9A-Fa-f]{64}")) {
				config.preSharedKey = password;
			} else {
				config.preSharedKey = '"' + password + '"';
			}
			break;

		default:
			return null;
		}
		return config;
	}

然后直接调用WifiManager的save方法即可添加网络。

public void addWifi(String ssid, String password, int security, ActionListener listener) {
		WifiConfiguration configuration = getNewConfig(ssid, password, security);
		if (configuration != null) {
			//通过创建的WifiConfiguration,调用WifiManager的save方法即可,然后刷新wifi列表。
			mWifiManager.save(configuration, listener);
			updateAccessPoints();
		}
	}

删除已保存的网络:直接使用WifiManager的forget方法。

public void forget(WifiConfiguration configuration, ActionListener listener) {
		if (configuration != null) {
			forget(configuration.networkId, listener);
		}
	}

	public void forget(int networkId, ActionListener listener) {
		mWifiManager.forget(networkId, listener);
		updateAccessPoints();
	}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值