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

最新的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自动化测试也可以尝试一下增加这个参数针对加密的锁屏设备是否可行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值