android测试中如何控制wifi
在进行robotium 编写自动化测试用例的时候,有些case 需要控制网络来进行验证,这个时候就需要来回关闭,打开wifi 连接。在网上搜了一下,使用方法比较简单,整理如下:
1、首先需要在app中的 AndroidManifest.xml 文件中申请wifi的访问权限,配置如下:
- <!--申请操作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(); } }
转载于:https://www.cnblogs.com/xiao-kkp/p/4016134.html
android测试中如何控制wifi相关推荐
- monkey测试中防止关闭WIFI的方法
monkey测试中防止关闭WIFI的方法 在monkey测试过程中,经常出现随机下拉顶部的状态栏,导致WIFI被关闭,测试过程中无网络,业务流程无法进行验证,针对这种情况,有如下两种解决方法: 1.时 ...
- android 通过adb命令控制wifi开关
android 通过adb命令控制wifi开关 2017年08月23日 17:47:46 刘国栋 阅读数:14598 版权声明:本文为博主原创文章,转载请声明文章出处. https://blog.cs ...
- Android测试中被测应用挂了怎么办?
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...
- Android测试中常用的adb命令、monkey命令
Android调试桥,一种多功能命令行工具,与设备进行通信 查看adb版本:adb version 关闭和启动adb服务:adb kill-server // adb start-server 安装a ...
- 线上bug检测工具 android,Android 测试中对于偶现且难以重现的 bug 的处理
吐槽 请先允许我对此类 bug 进行吐槽,相信做测试的同学都碰见过这种 bug! 我们在测试过程中经常会碰见一类很头疼的 bug,就是偶现性的 bug,所谓偶现性,是相对于必现而言,这类 bug 有些 ...
- appium java 点击事件_“按钮点击”在Appium Android测试中给出“处理命令时出现未知的服务器端错误 . ”...
info:[debug]将命令推送到appium工作队列:["element:getSize",{"elementId":"2"}] inf ...
- Android系统中通过shell命令实现wifi的连接控制
简介 工作中遇到一个"变态"的需求,在android系统中不通过java层控制wifi的连接(主要是修改ap的essid和password),而是需要通过native层实现对wif ...
- android 控制wifi模块,Android 控制wifi 相关操作实例
Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过 ...
- 【Android 安装包优化】WebP 应用 ( 4.0 以下兼容 WebP | Android Studio 中使用 libwebp.so 库向下兼容版本 | libwebp 库测试可用性 )
文章目录 一. Android Studio 中导入 libwebp.so 库 二. Android Studio 中测试 libwebp.so 库 三.参考资料 一. Android Studio ...
- Android环境下通过C框架层控制WIFI【转】
本文转载自:https://blog.csdn.net/edw200/article/details/52192631 本人是从事Linux嵌入式开发的,安卓wifi控制在安卓JAVA层已经做得非常成 ...
最新文章
- Linux环境Shell脚本上传下载阿里云OSS文件
- UNITY Destroy()和DestroyImadiate()的区别
- linux 全球用户数量,全球Linux用户市场占有率升至2.78%
- Java分割字符split与StringTokenizer
- 计算机视觉研究入门全指南
- mysql sdi_MySQL 8.0新特性: 数据字典
- 你的护城河在哪?老程序员的一些2016感悟
- 构建面向对象的应用软件系统框架
- MySQL之Handler_read_*查看索引使用情况
- 基于C语言的基础学习Java
- 空间计量:地理加权回归模型-(GWR)-参数估计
- 指派问题中匈牙利算法----Python实现
- Google 电子表格函数列表
- oracle工程师 的职业,数据库工程师的职业规划
- Python之OpenCV 007 《走近混沌》分形艺术Fractal之美
- 深度学习:用生成对抗网络(GAN)来恢复高分辨率(高精度)图片 (附源码,模型与数据集)
- 【密码学】七、密钥管理
- 仙武:开局神级召唤!(三)
- 绘画系统——P5.js
- 人工智能会为远程学习带来春天吗?
热门文章
- 新颖的自我介绍_有哪些非常有创意的自我介绍?
- 仿任务面板 跨多个RecyclerView的Item拖动 支持缩小后拖动
- 记录一次常见的错误:java.sql.SQLException: Got error 28 from storage engine
- Spark streaming消费Kafka的正确姿势
- Eventbus收录
- Mybatis缓存机制及mybatis的各个组成部分
- 动态控制C4C UI元素的显示和隐藏
- dubbo源码分析12——服务暴露3_doExportUrls()方法分析
- CrazyWing:Python自动化运维开发实战 七、Python数据类型之数字
- JAVA-数据库之MySQL与JDBC驱动下载与安装