android測試中如何控制wifi

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   io   os   使用   ar   

在進行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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.