安卓 wifi 與熱點AP 之間切換

建立熱點APjava

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,打開wifiandroid

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();
		}
		
	    
	} 
}

加的權限this

<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" />
相關文章
相關標籤/搜索