Android连接wifi,调用系统API

别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述Android连接wifi,调用系统API相关的知识,希望能为你提供帮助。
本文转载自:http://blog.csdn.net/aaa1050070637/article/details/54136472
直接上代码,简单粗暴,一看就懂
【Android连接wifi,调用系统API】 
[java]  view plain  copy  

  1. import  android.content.Context;    
  2. import  android.net.ConnectivityManager;    
  3. import  android.net.NetworkInfo;    
  4. import  android.net.wifi.ScanResult;    
  5. import  android.net.wifi.WifiConfiguration;    
  6. import  android.net.wifi.WifiInfo;    
  7. import  android.net.wifi.WifiManager;    
  8.    
  9. import  android.util.Log;    
  10.    
  11. import  java.util.List;    
  12.    
  13. /** 
  14.   *  create  2016.12.29 
  15.   *   
  16.   *  @author  jack大漠 
  17.   *   
  18.   */   
  19. public  class  WifiConnect  {   
  20.         private  static  final  String  SSID  =  "Sunlight";    
  21.         private  static  final  String  PASSWORD  =  "12345678";    
  22.         public  static  final  String  WIFI_IS_NOT_OPEN  =  "wifi  is  closed.";    
  23.         private  static  final  String  TAG  =  "vivi";    
  24.         public  WifiManager  mWifiManager  =  null;    
  25.         private  Context  mContext  =  null;    
  26.         private  int  mNetworkID  =  -1;    
  27.    
  28.         public  WifiConnect(Context  context)  {   
  29.                 this.mContext  =  context;    
  30.                 mWifiManager  =  (WifiManager)  context   
  31.                                 .getSystemService(Context.WIFI_SERVICE);    
  32.         }   
  33.    
  34.         /** 
  35.           *  网络是否连接 
  36.           */   
  37.         public  boolean  isWifiConnected()  {   
  38.                 if  (mContext  !=  null)  {   
  39.                         ConnectivityManager  mConnectivityManager  =  (ConnectivityManager)  mContext   
  40.                                         .getSystemService(Context.CONNECTIVITY_SERVICE);    
  41.                         NetworkInfo  mNetworkInfo  =  mConnectivityManager   
  42.                                         .getActiveNetworkInfo();    
  43.                         if  (mNetworkInfo  !=  null   
  44.                                         & &   mNetworkInfo.getType()  ==  ConnectivityManager.TYPE_WIFI)  {   
  45.                                 return  mNetworkInfo.isConnected();    
  46.                         }   
  47.                 }   
  48.                 return  false;    
  49.         }   
  50.    
  51.         /** 
  52.           *  Show  wifi  list 
  53.           */   
  54.         public  String  getWifiList()  {   
  55.                 if  (WifiManager.WIFI_STATE_ENABLED  !=  mWifiManager.getWifiState())  {   
  56.                         return  WIFI_IS_NOT_OPEN;    
  57.                 }   
  58.                 String  text  =  "";    
  59.                 List< ScanResult>   results  =  mWifiManager.getScanResults();    
  60.                 for  (ScanResult  result  :  results)  {   
  61.                         String  SSID  =  result.SSID;    
  62.                         if  (SSID.startsWith("Sun"))  {   
  63.                                 int  db  =  result.level;    
  64.                                 text  +=  SSID  +  ":"  +  db;    
  65.                                 return  text;    
  66.                         }   
  67.                 }   
  68.                 return  "";    
  69.         }   
  70.    
  71.         /** 
  72.           *  打开wifi开关 
  73.           */   
  74.         public  void  openWifi()  {   
  75.                 mWifiManager.setWifiEnabled(true);    
  76.         }   
  77.    
  78.         public  void  closeWifi()  {   
  79.                 mWifiManager.setWifiEnabled(false);    
  80.         }   
  81.    
  82.         /** 
  83.           *  是否打开开关 
  84.           */   
  85.         public  boolean  isWifiOpened()  {   
  86.                 return  WifiManager.WIFI_STATE_ENABLED  ==  mWifiManager.getWifiState();    
  87.         }   
  88.    
  89.         public  boolean  isWifiEnable()  {   
  90.                 return  mWifiManager.isWifiEnabled();    
  91.         }   
  92.    
  93.         /** 
  94.           *  关闭开关 
  95.           */   
  96.         public  void  shutdownWiFi()  {   
  97.                 mWifiManager.setWifiEnabled(false);    
  98.                 mNetworkID  =  -1;    
  99.         }   
  100.    
  101.         /** 
  102.           *  连接指定Wifi 
  103.           */   
  104.         public  boolean  connectWifi(final  String  ssid,  final  String  password,   
  105.                         final  SecurityMode  mode)  {   
  106.                 WifiInfo  info  =  getWifiInfo();    
  107.                 Log.d(TAG,  "connectWifi----> "  +  info.toString()  +  "  ");    
  108.                 if  (isWifiConnected()  & &   info  !=  null   
  109.                                 & &   info.getSSID().equals("\""  +  ssid  +  "\""))  {   
  110.                         return  true;    
  111.                 }   
  112.                 Log.d(TAG,  "connectWifi----> "  +  isWifiConnected()  +  "  ");    
  113.                 List< WifiConfiguration>   existingConfigs  =  mWifiManager   
  114.                                 .getConfiguredNetworks();    
  115.                 if  (existingConfigs  ==  null)  {   
  116.                         return  false;    
  117.                 }   
  118.                 for  (WifiConfiguration  existingConfig  :  existingConfigs)  {   
  119.                         if  (existingConfig.SSID.equals("\""  +  ssid  +  "\""))  {   
  120.                                 mNetworkID  =  existingConfig.networkId;    
  121.                                 break;    
  122.                         }   
  123.                 }   
  124.                 if  (mNetworkID  < =  -1)  {   
  125.                         WifiConfiguration  config  =  new  WifiConfiguration();    
  126.                         config.SSID  =  "\""  +  ssid  +  "\"";    
  127.                         if  (mode  ==  SecurityMode.OPEN)  {   
  128.                                 config.wepKeys[0]  =  "";    
  129.                                 config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);    
  130.                                 config.wepTxKeyIndex  =  0;    
  131.                         }  else  if  (password  !=  null  & &   !"".equals(password))  {   
  132.                                 if  (mode  ==  SecurityMode.WEP)  {   
  133.                                         config.preSharedKey  =  "\""  +  password  +  "\"";    
  134.                                         config.allowedAuthAlgorithms   
  135.                                                         .set(WifiConfiguration.AuthAlgorithm.SHARED);    
  136.                                         config.allowedGroupCiphers   
  137.                                                         .set(WifiConfiguration.GroupCipher.CCMP);    
  138.                                         config.allowedGroupCiphers   
  139.                                                         .set(WifiConfiguration.GroupCipher.TKIP);    
  140.                                         config.allowedGroupCiphers   
  141.                                                         .set(WifiConfiguration.GroupCipher.WEP40);    
  142.                                         config.allowedGroupCiphers   
  143.                                                         .set(WifiConfiguration.GroupCipher.WEP104);    
  144.                                         config.allowedKeyManagement   
  145.                                                         .set(WifiConfiguration.KeyMgmt.NONE);    
  146.                                         config.wepTxKeyIndex  =  0;    
  147.                                 }  else  {   
  148.                                         config.preSharedKey  =  "\""  +  password  +  "\"";    
  149.                                         config.allowedAuthAlgorithms   
  150.                                                         .set(WifiConfiguration.AuthAlgorithm.OPEN);    
  151.                                         config.allowedGroupCiphers   
  152.                                                         .set(WifiConfiguration.GroupCipher.TKIP);    
  153.                                         config.allowedKeyManagement   
  154.                                                         .set(WifiConfiguration.KeyMgmt.WPA_PSK);    
  155.                                         config.allowedPairwiseCiphers   
  156.                                                         .set(WifiConfiguration.PairwiseCipher.TKIP);    
  157.                                         config.allowedGroupCiphers   
  158.                                                         .set(WifiConfiguration.GroupCipher.CCMP);    
  159.                                         config.allowedPairwiseCiphers   
  160.                                                         .set(WifiConfiguration.PairwiseCipher.CCMP);    
  161.                                         config.status  =  WifiConfiguration.Status.ENABLED;    
  162.                                 }   
  163.                         }   
  164.                         mNetworkID  =  mWifiManager.addNetwork(config);    
  165.                 }   
  166.                 //  连接该网络   
  167.                 return  mWifiManager.enableNetwork(mNetworkID,  true);    
  168.    
  169.         }   
  170.    
  171.         public  WifiInfo  getWifiInfo()  {   
  172.                 WifiInfo  info  =  null;    
  173.                 try  {   
  174.                         if  (isWifiConnected())  {   
  175.                                 info  =  mWifiManager.getConnectionInfo();    
  176.                         }   
  177.                 }  catch  (Exception  e)  {   
  178.                         Log.e(TAG,  "getWifiInfo",  e);    
  179.                 }   
  180.                 return  info;    
  181.         }   
  182.    
  183.         /** 
  184.           *  网络加密模式 
  185.           */   
  186.         public  enum  SecurityMode  {   
  187.                 OPEN,  WEP,  WPA2   
  188.         }   
  189.    
  190.         /** 
  191.           *  初始化WiFi连接 
  192.           */   
  193.         public  boolean  initWifiConnect()  {   
  194.                 Log.d("vivi",  "初始化Wifi连接----> "  +  "  开始连接");    
  195.                 return  connectWifi(SSID,  PASSWORD,  SecurityMode.WPA2);    
  196.         }   
  197.    
  198. }   

    推荐阅读