Android AP模式创建有/无密码热点

来源:互联网 发布:mars源码 编辑:程序博客网 时间:2024/05/19 07:41
1、用到的类(可以不用反射)
WifiManager:控制wifi的状态监测和打开、关闭。
WifiConfiguration:配置wifi的用户名、密码和加密方式等。
KeyMgmt:设置加密的方式,并设置到config中

2、test.java

WifiManager mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

WifiConfiguration mWifiConfig  = mWifiManager.getWifiApConfiguration();

WifiInfo wifiInfo  = mWifiManager.getConnectionInfo(); 

//获取AP模式连接设备数量

List<Station> cdl = mWifiManager.getApConnectedStas();

Log.d(TAG, "AP Count ===" +""+cdl.size());

mWifiConfig.allowedAuthAlgorithms.clear();  
mWifiConfig.allowedGroupCiphers.clear();  
mWifiConfig.allowedKeyManagement.clear();  
mWifiConfig.allowedPairwiseCiphers.clear();  
mWifiConfig.allowedProtocols.clear();  
int wifi_ap_state = mWifiManager.getWifiApState();
if((wifi_ap_state == WifiManager.WIFI_AP_STATE_ENABLING) || (wifi_ap_state == WifiManager.WIFI_AP_STATE_ENABLED)){
 mWifiManager.setWifiApEnabled(null, false);//关闭wifi的AP模式
}
//设置NONE = 0模式
mWifiConfig.SSID = "none";
mWifiConfig.wepKeys[0] = "";
mWifiConfig.allowedKeyManagement.set(KeyMgmt.NONE);
mWifiConfig.wepTxKeyIndex = 0;    
mWifiManager.setWifiApEnabled(mWifiConfig, true);

//设置WPA PSK = 1模式
mWifiConfig.SSID = "wpa";
mWifiManager.preSharedKey = "88888888";
mWifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);  
mWifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);  
mWifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);  
mWifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);  
mWifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);  
mWifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);  
mWifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);  
mWifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
mWifiManager.setWifiApEnabled(mWifiConfig, true);

//设置WPA2 PSK = 2模式
mWifiConfig.SSID = "wpa2";
mWifiConfig.preSharedKey = "12345678";
mWifiConfig.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);  
mWifiConfig.allowedAuthAlgorithms.set(AuthAlgorithm.OPEN);
mWifiManager.setWifiApEnabled(mWifiConfig, true);

3.权限
<uses-permission android:name="android.permission.INTERNET"/>   
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />


1 0
原创粉丝点击