Bootstrap

android自动连接到指定wifi

主类:

[java]  view plain copy
  1. public class WifiAdmin {  
  2.     // 定义WifiManager对象  
  3.     private WifiManager mWifiManager;  
  4.     // 定义WifiInfo对象  
  5.     private WifiInfo mWifiInfo;  
  6.     // 扫描出的网络连接列表,ScanResult主要用来描述已经检测出的接入点,包括介入点的地址,介入点的名称,身份认证,频率,信号强度等信息  
  7.     private List<ScanResult> mWifiList;  
  8.     // 网络连接列表  
  9.     private List<WifiConfiguration> mWifiConfiguration;  
  10.     // 定义一个WifiLock  
  11.     WifiLock mWifiLock;  
  12.   
  13.     // 构造器  
  14.     public WifiAdmin(Context context) {  
  15.         // 取得WifiManager对象  
  16.         mWifiManager = (WifiManager) context  
  17.                 .getSystemService(Context.WIFI_SERVICE);  
  18.         // 取得WifiInfo对象  
  19.         mWifiInfo = mWifiManager.getConnectionInfo();  
  20.     }  
  21.   
  22.     // 打开WIFI  
  23.     public void openWifi() {  
  24.         if (!mWifiManager.isWifiEnabled()) {  
  25.             mWifiManager.setWifiEnabled(true);  
  26.             System.out.println("wifi打开成功!");  
  27.         }  
  28.         // if (mWifiManager.disconnect()) {  
  29.         // mWifiManager.setWifiEnabled(true);  
  30.         // System.out.println("wifi打开成功!!");  
  31.         // }  
  32.     }  
  33.   
  34.     // 关闭WIFI  
  35.     public void closeWifi() {  
  36.         if (mWifiManager.isWifiEnabled()) {  
  37.             mWifiManager.setWifiEnabled(false);  
  38.         }  
  39.     }  
  40.   
  41.     // 检查当前WIFI状态  
  42.     public int checkState() {  
  43.         return mWifiManager.getWifiState();  
  44.     }  
  45.   
  46.     // 锁定WifiLock  
  47.     public void acquireWifiLock() {  
  48.         mWifiLock.acquire();  
  49.     }  
  50.   
  51.     // 解锁WifiLock  
  52.     public void releaseWifiLock() {  
  53.         // 判断时候锁定  
  54.         if (mWifiLock.isHeld()) {  
  55.             mWifiLock.acquire();  
  56.         }  
  57.     }  
  58.   
  59.     // 创建一个WifiLock  
  60.     public void creatWifiLock() {  
  61.         mWifiLock = mWifiManager.createWifiLock("Test");  
  62.     }  
  63.   
  64.     // 得到配置好的网络  
  65.     public List<WifiConfiguration> getConfiguration() {  
  66.         return mWifiConfiguration;  
  67.     }  
  68.   
  69.     // 指定配置好的网络进行连接  
  70.     public void connectConfiguration(int index) {  
  71.         // 索引大于配置好的网络索引返回  
  72.         if (index > mWifiConfiguration.size()) {  
  73.             System.out.println("连接失败!");  
  74.             return;  
  75.         }  
  76.         // 连接配置好的指定ID的网络  
  77.         mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,  
  78.                 true);  
  79.         System.out.println(index + "连接成功!");  
  80.     }  
  81.   
  82.     public void startScan() {  
  83.         mWifiManager.startScan();  
  84.         // 得到扫描结果  
  85.         mWifiList = mWifiManager.getScanResults();  
  86.         // 得到配置好的网络连接  
  87.         mWifiConfiguration = mWifiManager.getConfiguredNetworks();  
  88.     }  
  89.   
  90.     // 得到网络列表  
  91.     public List<ScanResult> getWifiList() {  

测试:

[java]  view plain copy
  1. public class TestActivity extends Activity {  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState) {  
  4.         // 测试activity  
  5.         super.onCreate(savedInstanceState);  
  6.         // setContentView(R.layout.show_value);  
  7.         WifiAdmin wifiAdmin = new WifiAdmin(TestActivity.this);  
  8.         wifiAdmin.openWifi();  
  9.     <span style="white-space:pre">  </span>//需要连接的网络信息,类型1表示密码为空  
  10.         WifiConfiguration wcg=wifiAdmin.CreateWifiInfo("wifi name"""1);  
[java]  view plain copy
  1. <span style="white-space:pre">      </span>//加入配置的网络  
  2.         wifiAdmin.addNetwork(wcg);  
  3.     }  
  4. }  

【原文:http://blog.csdn.net/yhm2046/article/details/8540191】

;