安卓 wifi 与热点AP 之间切换

创建热点AP

private String mSSID = "";
private String mPasswd = "";
private WifiManager mWifiManager = null;
private void crateAp() {
	mSSID = "test";
	mPasswd = "12345678";
	mWifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);  
	
	if (mWifiManager.isWifiEnabled()) {
		mWifiManager.setWifiEnabled(false);
	} 
	stratWifiAp();
}

public void stratWifiAp() {
	Method method1 = null;
	try {
		method1 = mWifiManager.getClass().getMethod("setWifiApEnabled",
				WifiConfiguration.class, boolean.class);
		WifiConfiguration netConfig = new WifiConfiguration();

		netConfig.SSID = mSSID;
		netConfig.preSharedKey = mPasswd;

		netConfig.allowedAuthAlgorithms
				.set(WifiConfiguration.AuthAlgorithm.OPEN);
		netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
		netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
		netConfig.allowedKeyManagement
				.set(WifiConfiguration.KeyMgmt.WPA_PSK);
		netConfig.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.CCMP);
		netConfig.allowedPairwiseCiphers
				.set(WifiConfiguration.PairwiseCipher.TKIP);
		netConfig.allowedGroupCiphers
				.set(WifiConfiguration.GroupCipher.CCMP);
		netConfig.allowedGroupCiphers
				.set(WifiConfiguration.GroupCipher.TKIP);

		method1.invoke(mWifiManager, netConfig, true);

		
	} catch (IllegalArgumentException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (InvocationTargetException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (SecurityException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (NoSuchMethodException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

关闭AP,打开wifi

public void openWifi() { 
	while (!mWifiManager.isWifiEnabled()) { 
		WifiConfiguration apConfig = null;
		Method method;
		try {
			method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
			method.invoke(mWifiManager, apConfig, false);
			mWifiManager.setWifiEnabled(true); 
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
		
	    
	} 
}

加的权限

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" ></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ></uses-permission>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />


转载于:https://my.oschina.net/u/274829/blog/599800

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值