Android Wifi自动打开并连接
2017-09-04 10:25
387 查看
转自:http://blog.csdn.net/yangwen123/article/details/9996359
版权声明:本文为博主原创文章,未经博主允许不得转载。
WIFI自动打开并连接到指定的热点:
[java] view
plain copy
do {
try {
//连接到指定的wifi热点
mAdmin.connectWifi(SSID, PWD, WifiCipherType.WIFICIPHER_WPA);
Thread.sleep(20 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.i(TAG, "connect wifi failed. please open wifi !");
break;
}
} while (!mAdmin.isWifiConnect()); //判断wifi是否连接成功
连接指定wifi热点
[java] view
plain copy
public void connectWifi(String SSID, String Password, WifiCipherType Type) {
//打开wifi
if (!this.openWifi()) {
return;
}
//等到wifi状态变成WIFI_STATE_ENABLED的时候才能执行下面的语句
while (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
try {
// 为了避免程序一直while循环,让它睡个100毫秒在检测……
Thread.currentThread();
Thread.sleep(100);
} catch (InterruptedException ie) {
}
}
//判断是否已配置过当前热点
WifiConfiguration config = IsConfig(SSID);
if (config == null) {
//创建一个当前连接的wifi热点
config = CreateWifiInfo(SSID, Password, Type);
}else {
mWifiManager.removeNetwork(config.networkId);
}
WifiManager.Channel mChannel = mWifiManager.initialize(mContext, mContext.getMainLooper(), null);
mWifiManager.connect(mChannel, config, null);
}
判断是否已经配置过当前wifi热点
[java] view
plain copy
public WifiConfiguration IsConfig(String SSID) {
List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();
if (existingConfigs != null && existingConfigs.size() > 0) {
for (WifiConfiguration existingConfig : existingConfigs) {
if (existingConfig.SSID.equals("\"" + SSID + "\"")) {
return existingConfig;
}
}
}
return null;
}
添加一个wifi热点信息配置
[java] view
plain copy
public 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 + "\"";
if (Type == WifiCipherType.WIFICIPHER_NOPASS) {
config.wepKeys[0] = "";
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
if (Type == WifiCipherType.WIFICIPHER_WEP) {
config.preSharedKey = "\"" + Password + "\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
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.status = WifiConfiguration.Status.ENABLED;
} else {
return null;
}
return config;
}
打开或关闭wifi连接
[java] view
plain copy
// 打开WIFI
public boolean openWifi() {
boolean bRet = true;
if (!mWifiManager.isWifiEnabled()) {
bRet = mWifiManager.setWifiEnabled(true);
}
return bRet;
}
// 关闭WIFI
public void closeWifi() {
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
}
判断wifi是否成功连接
[java] view
plain copy
public boolean isWifiConnect() {
ConnectivityManager mConnectivityManager = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
WIFI自动打开并连接到指定的热点:
[java] view
plain copy
do {
try {
//连接到指定的wifi热点
mAdmin.connectWifi(SSID, PWD, WifiCipherType.WIFICIPHER_WPA);
Thread.sleep(20 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.i(TAG, "connect wifi failed. please open wifi !");
break;
}
} while (!mAdmin.isWifiConnect()); //判断wifi是否连接成功
连接指定wifi热点
[java] view
plain copy
public void connectWifi(String SSID, String Password, WifiCipherType Type) {
//打开wifi
if (!this.openWifi()) {
return;
}
//等到wifi状态变成WIFI_STATE_ENABLED的时候才能执行下面的语句
while (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING) {
try {
// 为了避免程序一直while循环,让它睡个100毫秒在检测……
Thread.currentThread();
Thread.sleep(100);
} catch (InterruptedException ie) {
}
}
//判断是否已配置过当前热点
WifiConfiguration config = IsConfig(SSID);
if (config == null) {
//创建一个当前连接的wifi热点
config = CreateWifiInfo(SSID, Password, Type);
}else {
mWifiManager.removeNetwork(config.networkId);
}
WifiManager.Channel mChannel = mWifiManager.initialize(mContext, mContext.getMainLooper(), null);
mWifiManager.connect(mChannel, config, null);
}
判断是否已经配置过当前wifi热点
[java] view
plain copy
public WifiConfiguration IsConfig(String SSID) {
List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();
if (existingConfigs != null && existingConfigs.size() > 0) {
for (WifiConfiguration existingConfig : existingConfigs) {
if (existingConfig.SSID.equals("\"" + SSID + "\"")) {
return existingConfig;
}
}
}
return null;
}
添加一个wifi热点信息配置
[java] view
plain copy
public 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 + "\"";
if (Type == WifiCipherType.WIFICIPHER_NOPASS) {
config.wepKeys[0] = "";
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
if (Type == WifiCipherType.WIFICIPHER_WEP) {
config.preSharedKey = "\"" + Password + "\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
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.status = WifiConfiguration.Status.ENABLED;
} else {
return null;
}
return config;
}
打开或关闭wifi连接
[java] view
plain copy
// 打开WIFI
public boolean openWifi() {
boolean bRet = true;
if (!mWifiManager.isWifiEnabled()) {
bRet = mWifiManager.setWifiEnabled(true);
}
return bRet;
}
// 关闭WIFI
public void closeWifi() {
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
}
判断wifi是否成功连接
[java] view
plain copy
public boolean isWifiConnect() {
ConnectivityManager mConnectivityManager = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
相关文章推荐
- Android Wifi自动打开并连接
- android检测wifi是否打开或连接及设置自动打开
- android 代码设置、打开wifi热点及热点的连接
- Android wifi热点创建和自动连接
- AndroidWIFI自动连接
- Android 通过代码设置、打开wifi热点及热点连接的实现代码
- android Wifi自动连接
- android 代码设置、打开wifi热点及热点的连接
- android 代码设置、打开wifi热点及热点的连接
- android 自动连接wifi
- android自动连接指定wifi
- android SDIO error导致wifi无法打开或者连接热点异常的问题
- Android 如何修改wifi连接失败后自动重连次数?
- 打开android系统设置,连接wifi
- Android判断网络连接是否可用,WiFi、移动数据是否打开等
- android 代码设置、打开wifi热点及热点的连接
- Android 如何修改wifi连接失败后自动重连次数?
- Android wifi 从连接态自动断开的解决办法(dhcp导致)【转】
- android自动连接指定wifi
- android连接指定wifi,程序断开wifi并保证系统不自动重新连接,记录wifi连接时间