注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风之云的足迹

点击这里添加博客描述

 
 
 

日志

 
 

Robotium用例通过代码自动解锁屏幕  

2014-06-21 11:26:45|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最新的Robotium5.2.1官方新增了一个unlockScreen的API,详情介绍见:5.2.1
官方说明这个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() {
@Override
public void run() {
activityUtils.getCurrentActivity(false).getWindow().
addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
});
}
});
}

通过源代码可以发现底层实现也很简单,只有一句代码,关键的是 FLAG_DISMISS_KEYGUARD这个参数的设置。
可以参考Android的官网对于这个参数的介绍

官网的介绍中也有说明这个自动解锁只针对不是安全的锁,如果是需要密码的这种安全锁还是解锁不了的,从安全性角度来看,这也是正常的,如果这样也能解锁那就能够破解密码,个人隐私也容易泄露。


FLAG_SHOW_WHEN_LOCKED参数介绍

关于这个参数,官方介也有详细介绍,可以实现当前界面优先于锁屏界面,就是可以在锁屏界面的上层显示,不过这个实现的不是解锁操作,这个功能可能针对一些闹铃应用等需要在锁屏界面显示的比较有用。不过我们的UI自动化测试也可以尝试一下增加这个参数针对加密的锁屏设备是否可行。

  评论这张
 
阅读(1113)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018