android 笔记 wifi应用

Android-开启和关闭wifi的代码段 


1、需要申请的权限 

Java代码  收藏代码
  1. android.permission.ACCESS_WIFI_STATE   
  2. android.permission.CHANGE_WIFI_STATE   
  3. android.permission.WAKE_LOCK  



2、获取WifiManager 

Java代码  收藏代码
  1. wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);  



3、开启、关闭wifi 

Java代码  收藏代码
  1. if (wifiManager.isWifiEnabled()) {    
  2. wifiManager.setWifiEnabled(false);    
  3. else {    
  4. wifiManager.setWifiEnabled(true);    
  5. }  



4、注意 

如果遇到force-close, 选wait即可, 因为启动wifi需要几秒钟, UI如果5妙钟还没反映的话, 系统会给你这个force close exception 


Android Wifi的使用 

Java代码  收藏代码
  1. package com.Aina.Android;    
  2.    
  3. import java.util.List;    
  4.    
  5. import android.content.Context;    
  6. import android.net.wifi.ScanResult;    
  7. import android.net.wifi.WifiConfiguration;    
  8. import android.net.wifi.WifiInfo;    
  9. import android.net.wifi.WifiManager;    
  10. import android.net.wifi.WifiManager.WifiLock;    
  11.    
  12. /**  
  13.  * com.Aina.Android Pro_wifi  
  14.  *   
  15.  * @author Aina.huang E-mail: 674023920@qq.com  
  16.  * @version 创建时间:2010 Jul 21, 2010 12:29:00 PM 类说明  
  17.  */    
  18. public class WifiAdmin {    
  19.    
  20.     private WifiManager mWifiManager = null;    
  21.     private WifiInfo mWifiInfo = null;    
  22.     private List<ScanResult> mWifiList = null;// 扫描出的网络连接列表    
  23.     private List<WifiConfiguration> mWifiConfiguration = null;// 网络连接列表    
  24.     private WifiLock mWifiLock = null;    
  25.    
  26.     public WifiAdmin(Context mContext) {    
  27.         mWifiManager = (WifiManager) mContext    
  28.                 .getSystemService(mContext.WIFI_SERVICE);    
  29.         mWifiInfo = mWifiManager.getConnectionInfo();    
  30.     }    
  31.    
  32.     public void OpenWifi() {    
  33.         if (!mWifiManager.isWifiEnabled()) {    
  34.             mWifiManager.setWifiEnabled(true);// 打开wifi    
  35.         }    
  36.     }    
  37.    
  38.     public void CloseWife() {    
  39.         if (mWifiManager.isWifiEnabled()) {    
  40.             mWifiManager.setWifiEnabled(false);// 关闭wifi    
  41.         }    
  42.     }    
  43.    
  44.     public void lockWifi() {    
  45.         mWifiLock.acquire();// 锁定wifi    
  46.     }    
  47.    
  48.     public void rlockWifi() {    
  49.         if (mWifiLock.isHeld()) {    
  50.             mWifiLock.acquire();// 解锁wifi    
  51.         }    
  52.     }    
  53.    
  54.     public void Createwifilock() {    
  55.         mWifiLock = mWifiManager.createWifiLock("Testss");// 创建一个wifilock    
  56.     }    
  57.    
  58.     public List<WifiConfiguration> GetConfinguration() {    
  59.         return mWifiConfiguration;// 得到配置好的网络    
  60.     }    
  61.    
  62.     public void ConnectConfiguration(int index) {    
  63.         if (index > mWifiConfiguration.size()) {    
  64.             return;    
  65.         }    
  66.         mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);//连接配置好的指定ID的网络    
  67.     }    
  68.     public void StartScan()    
  69.     {    
  70.         mWifiManager.startScan();    
  71.         //得到扫描结果    
  72.         mWifiList = mWifiManager.getScanResults();    
  73.         //得到配置好的网络连接    
  74.         mWifiConfiguration = mWifiManager.getConfiguredNetworks();    
  75.     }    
  76.     //得到网络列表    
  77.     public List<ScanResult> GetWifiList()    
  78.     {    
  79.         return mWifiList;    
  80.     }    
  81.     //查看扫描结果    
  82.     public StringBuilder LookUpScan()    
  83.     {    
  84.         StringBuilder stringBuilder = new StringBuilder();    
  85.         for (int i = 0; i < mWifiList.size(); i++)    
  86.         {    
  87.             stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");    
  88.             //将ScanResult信息转换成一个字符串包    
  89.             //其中把包括:BSSID、SSID、capabilities、frequency、level    
  90.             stringBuilder.append((mWifiList.get(i)).toString());    
  91.             stringBuilder.append("\n");    
  92.         }    
  93.         return stringBuilder;    
  94.     }    
  95.     //得到MAC地址    
  96.     public String GetMacAddress()    
  97.     {    
  98.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();    
  99.     }    
  100.     //得到接入点的BSSID    
  101.     public String GetBSSID()    
  102.     {    
  103.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();    
  104.     }    
  105.     //得到IP地址    
  106.     public int GetIPAddress()    
  107.     {    
  108.         return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();    
  109.     }    
  110.     //得到连接的ID    
  111.     public int GetNetworkId()    
  112.     {    
  113.         return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();    
  114.     }    
  115.     //得到WifiInfo的所有信息包    
  116.     public String GetWifiInfo()    
  117.     {    
  118.         return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();    
  119.     }    
  120.     //添加一个网络并连接    
  121.     public void AddNetwork(WifiConfiguration wcg)    
  122.     {    
  123.         int wcgID = mWifiManager.addNetwork(wcg);     
  124.         mWifiManager.enableNetwork(wcgID, true);     
  125.     }    
  126.     //断开指定ID的网络    
  127.     public void DisconnectWifi(int netId)    
  128.     {    
  129.         mWifiManager.disableNetwork(netId);    
  130.         mWifiManager.disconnect();    
  131.     }    
  132. }  
原文地址:https://www.cnblogs.com/Gaojiecai/p/2245134.html