首页 > 代码库 > android测试中如何控制wifi

android测试中如何控制wifi

在进行robotium 编写自动化测试用例的时候,有些case 需要控制网络来进行验证,这个时候就需要来回关闭,打开wifi 连接。在网上搜了一下,使用方法比较简单,整理如下:

1、首先需要在app中的 AndroidManifest.xml 文件中申请wifi的访问权限,配置如下:

 

 

Xml代码  收藏代码
  1.  <!--申请操作wifi的权限 -->  
  2. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
  3. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  
  4. <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>   

 2、java wifi控制代码如下:

 

  1. import java.util.List;    import android.content.Context;  import android.net.wifi.ScanResult;  import android.net.wifi.WifiConfiguration;  import android.net.wifi.WifiInfo;  import android.net.wifi.WifiManager;  import android.net.wifi.WifiManager.WifiLock;    public class WifiAdmin{//代码来自网络,原址找不到了……      private WifiManager mWifiManager;   //定义WifiManager对象        private WifiInfo mWifiInfo; //定义WifiInfo对象        private List<ScanResult> mWifiList;   //扫描出的网络连接列表        private List<WifiConfiguration> mWifiConfiguration;   //网络连接列表        WifiLock mWifiLock; //定义一个WifiLock        public  WifiAdmin(Context context){          mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);        //取得WifiManager对象          mWifiInfo = mWifiManager.getConnectionInfo();       //取得WifiInfo对象      }      //打开WIFI      public void openWifi(){          if (!mWifiManager.isWifiEnabled()){              mWifiManager.setWifiEnabled(true);          }      }      //关闭WIFI      public void closeWifi(){          if (mWifiManager.isWifiEnabled()){              mWifiManager.setWifiEnabled(false);           }      }      //锁定WifiLock,当下载大文件时需要锁定      public void acquireWifiLock(){          mWifiLock.acquire();      }            public void releaseWifiLock(){//解锁WifiLock          //判断时候锁定          if (mWifiLock.isHeld()){              mWifiLock.acquire();          }      }            public void creatWifiLock(){//创建一个WifiLock          mWifiLock = mWifiManager.createWifiLock("Test");      }        public List<WifiConfiguration> getConfiguration(){    //得到配置好的网络          return mWifiConfiguration;      }            public void connectConfiguration(int index){//指定配置好的网络进行连接          //索引大于配置好的网络索引返回          if(index > mWifiConfiguration.size()){              return;          }          //连接配置好的指定ID的网络          mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);      }            public void startScan(){          mWifiManager.startScan();       //得到扫描结果           mWifiList = mWifiManager.getScanResults();           mWifiConfiguration = mWifiManager.getConfiguredNetworks();//得到配置好的网络连接      }            public List<ScanResult> getWifiList(){//得到网络列表          return mWifiList;      }            public StringBuilder lookUpScan(){//查看扫描结果          StringBuilder stringBuilder = new StringBuilder();          for (int i = 0; i < mWifiList.size(); i++){              stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");              //将ScanResult信息转换成一个字符串包              //其中把包括:BSSID、SSID、capabilities、frequency、level              stringBuilder.append((mWifiList.get(i)).toString());              stringBuilder.append("\n");          }          return stringBuilder;      }            //得到MAC地址      public String getMacAddress()   {          return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();      }            //得到接入点的BSSID      public String getBSSID(){          return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();      }            //得到IP地址      public int getIPAddress(){          return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();      }            //得到连接的ID      public int getNetworkId(){          return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();      }      //得到WifiInfo的所有信息包      public String getWifiInfo(){          return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();      }            //添加一个网络并连接      public void addNetwork(WifiConfiguration wcg){          int wcgID = mWifiManager.addNetwork(wcg);           mWifiManager.enableNetwork(wcgID, true);       }      //断开指定ID的网络      public void disconnectWifi(int netId){          mWifiManager.disableNetwork(netId);          mWifiManager.disconnect();      }  }   

     

 

android测试中如何控制wifi