摘要: 通过WifiManager可以实现对wifi进行操作,实现wifi自动连接等一些功能。

WifiManager工具类:

android包中自带有WifiManager工具类,专门用于wifi管理:

import android.net.wifi.WifiManager;

取得WifiManager对象:

WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);


打开WIFI:

if (!mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(true);}

创建一个WIFI信息:

public WifiConfiguration CreateWifiInfo(String SSID, String Password, int Type{WifiConfiguration config = new WifiConfiguration();config.allowedAuthAlgorithms.clear();config.allowedGroupCiphers.clear();config.allowedKeyManagement.clear();config.allowedPairwiseCiphers.clear();config.allowedProtocols.clear();config.SSID = "\"" + SSID + "\"";WifiConfiguration tempConfig = this.IsExsits(SSID);if (tempConfig != null) {mWifiManager.removeNetwork(tempConfig.networkId);}if (Type == 1// WIFICIPHER_NOPASS{config.wepKeys[0] = "";config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);config.wepTxKeyIndex = 0;}if (Type == 2// WIFICIPHER_WEP{config.hiddenSSID = true;config.wepKeys[0] = "\"" + Password + "\"";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 == 3// 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.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);config.status = WifiConfiguration.Status.ENABLED;}return config;}

这里只介绍第三个参数:Type。从代码中可以看出,Type有三个值,分别为1,2,3。WIFI热点是有加密的,加密方式包括:不加密,WEP,WPA三种,1、2、3就分别对应这三种加密方式,方法返回一个WIFI热点信息。


添加一个网络并连接:

public void addNetwork(WifiConfiguration wcg) {int wcgID = mWifiManager.addNetwork(wcg);boolean b = mWifiManager.enableNetwork(wcgID, true);System.out.println("a--" + wcgID);System.out.println("b--" + b);}

    具体的使用方式如下:

mWifiAdmin.addNetwork(mWifiAdmin.CreateWifiInfo(SSIDpassword, 3));


判断WIFI是否连接成功:

public int isWifiContected(Context context) {ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);Log.v(TAG, "isConnectedOrConnecting = " + wifiNetworkInfo.isConnectedOrConnecting());Log.d(TAG, "wifiNetworkInfo.getDetailedState() = " + wifiNetworkInfo.getDetailedState());if (wifiNetworkInfo.getDetailedState() == DetailedState.OBTAINING_IPADDR|| wifiNetworkInfo.getDetailedState() == DetailedState.CONNECTING) {return WIFI_CONNECTING;} else if (wifiNetworkInfo.getDetailedState() == DetailedState.CONNECTED) {return WIFI_CONNECTED;} else {Log.d(TAG, "getDetailedState() == " + wifiNetworkInfo.getDetailedState());return WIFI_CONNECT_FAILED;}}

关闭WIFI连接:

if (mWifiManager.isWifiEnabled()) {mWifiManager.setWifiEnabled(false);}

更多相关文章

  1. Android实现文字垂直滚动、纵向走马灯效果的实现方式汇总
  2. android开发之 Wifi的四个类
  3. Android(安卓)adb常见问题整理
  4. onCharacteristicChanged 回调问题
  5. Android存储设备(U盘,SD卡)状态监测
  6. 第八次课——数据存储方式
  7. 安卓定时刷新界面
  8. Android联网使用HttpClient 和HttpResponse 小结
  9. android 使用Http的Get方式读取网络数据

随机推荐

  1. [置顶] 一步一步学android OpenGL ES2.0
  2. android JNI 学习笔记
  3. 1.Android新版开发教程&笔记—Android(安
  4. AVD(android virtual device )路径设置
  5. android bug 问题定位(log+traces)
  6. Android(安卓)App开发总结
  7. Android系统介绍及平台特性
  8. Android(安卓)学习资料分享(2015 版)
  9. Android权限管理之Permission权限机制及
  10. Android学习小结