Robotium用例通过代码自动解锁屏幕
来源:互联网 发布:ubuntu 配置网络 编辑:程序博客网 时间:2024/06/05 03:14
最新的Robotium5.2.1官方新增了一个unlockScreen的API,详情介绍见:5.2.1。
官方说明这个API可以自动打开锁定的屏幕,这是很实用的功能,如果模拟器或者真机锁屏了,不解锁的话会运行不了测试用例,当前我们为了防止锁屏会安装一个软件保持屏幕常亮,但是会比较耗电。
这个API怎么使用呢?
很简单,只需要在用例开始执行之前调用一下这个API即可,如下代码所示。
public void testAddNote() {
solo.unlockScreen();
solo.clickOnMenuItem("Add note");
}
在模拟器中尝试可以自动解锁,真机中还没尝试,尝过过后补充一下。
底层是怎么实现的呢?
有了这个API,那我们来看一下它底层是怎么实现的,下面是Robotium的源代码
通过源代码可以发现底层实现也很简单,只有一句代码,关键的是 FLAG_DISMISS_KEYGUARD这个参数的设置。
可以参考Android的官网对于这个参数的介绍。
官网的介绍中也有说明这个自动解锁只针对不是安全的锁,如果是需要密码的这种安全锁还是解锁不了的,从安全性角度来看,这也是正常的,如果这样也能解锁那就能够破解密码,个人隐私也容易泄露。
官方说明这个API可以自动打开锁定的屏幕,这是很实用的功能,如果模拟器或者真机锁屏了,不解锁的话会运行不了测试用例,当前我们为了防止锁屏会安装一个软件保持屏幕常亮,但是会比较耗电。
这个API怎么使用呢?
很简单,只需要在用例开始执行之前调用一下这个API即可,如下代码所示。
public void testAddNote() {
solo.unlockScreen();
solo.clickOnMenuItem("Add note");
}
在模拟器中尝试可以自动解锁,真机中还没尝试,尝过过后补充一下。
底层是怎么实现的呢?
有了这个API,那我们来看一下它底层是怎么实现的,下面是Robotium的源代码
/*** Unlocks the lock screen.*/public void unlockScreen(){instrumentation.runOnMainSync(new Runnable() {@Overridepublic void run() {activityUtils.getCurrentActivity(false).getWindow(). addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);}});}});}
通过源代码可以发现底层实现也很简单,只有一句代码,关键的是 FLAG_DISMISS_KEYGUARD这个参数的设置。
可以参考Android的官网对于这个参数的介绍。
官网的介绍中也有说明这个自动解锁只针对不是安全的锁,如果是需要密码的这种安全锁还是解锁不了的,从安全性角度来看,这也是正常的,如果这样也能解锁那就能够破解密码,个人隐私也容易泄露。
FLAG_SHOW_WHEN_LOCKED参数介绍
关于这个参数,官方介也有详细介绍,可以实现当前界面优先于锁屏界面,就是可以在锁屏界面的上层显示,不过这个实现的不是解锁操作,这个功能可能针对一些闹铃应用等需要在锁屏界面显示的比较有用。不过我们的UI自动化测试也可以尝试一下增加这个参数针对加密的锁屏设备是否可行。
0 0
- Robotium用例通过代码自动解锁屏幕
- Robotium用例通过代码自动解锁屏幕
- robotium中在setUp方法中加入自动唤醒屏幕并解锁
- 屏幕解锁自动启动应用(通过Broadcast实现)
- 自动解锁并唤醒屏幕
- robotium 在有源代码的情况下 写测试用例无法编译通过,生成apk。
- Android startService 启动自动解锁点亮屏幕
- Android startService 启动自动解锁点亮屏幕
- android 亮屏及屏幕解锁代码
- android 亮屏及屏幕解锁代码
- android 亮屏及屏幕解锁代码
- Android代码点亮屏幕并且解锁
- Android唤醒、解锁屏幕代码实例
- 屏幕解锁
- 屏幕解锁
- robotium 代码
- Android程序:系统重启+开机自动运行+屏幕解锁
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- oracle关于密码尝试次数的设置
- 韩顺平php视频笔记46 函数入门
- windows获取进程端口
- Robotium测试之——获取当前屏幕的大小
- UML工具Astah的使用
- Robotium用例通过代码自动解锁屏幕
- java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**
- 二叉树的建立、遍历,以及给定二叉树前序遍历和中序遍历重建二叉树问题。
- Android官方技术文档翻译——Gradle 插件用户指南(7)
- qjson的编译和使用
- eXtremeDB Errror handling option
- 项目开发中的人月及如何计算
- 排序方法总结表
- UIApplication sharedApplication详细解释-IOS