android测试中如何控制wifi
2014-10-10 16:02
309 查看
在进行robotium 编写自动化测试用例的时候,有些case 需要控制网络来进行验证,这个时候就需要来回关闭,打开wifi 连接。在网上搜了一下,使用方法比较简单,整理如下:
1、首先需要在app中的 AndroidManifest.xml 文件中申请wifi的访问权限,配置如下:
Xml代码
<!--申请操作wifi的权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
2、java wifi控制代码如下:
1、首先需要在app中的 AndroidManifest.xml 文件中申请wifi的访问权限,配置如下:
Xml代码
<!--申请操作wifi的权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
2、java wifi控制代码如下:
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下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- 浅析android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制
- [如何控制Log 1]分别在Linux和Android中用C语言写系统日志
- android GPS定位,基站定位,WIFI定位开关的控制 (转)
- 如何控制Android不锁屏
- 测试过程控制----如何开展性能测试
- 如何测试APK是否设置android:debuggable="false"
- 如何理解、使用Android LogCat以及通过Monkey进行压力测试
- Android 如何连真机测试
- 如何控制Android不锁屏
- 转:如何控制Android不锁屏