用 adb 判断屏幕是否唤醒

遇到问题
  • 在Jenkins定时跑Appium时,屏幕休眠状态时,应用不能启动
解决方法
  • 在构建的时候先判断下屏幕是否休眠,如果不休眠,则唤醒屏幕
    • 判断屏幕是否休眠
  /** * 判断设备是否休眠 
  * @return 
  * @throws IOException 
  */
  public boolean isScreenLock() throws IOException {
            Runtime rt = Runtime.getRuntime(); 
            Process p = rt.exec("cmd.exe /c adb shell dumpsys power | findstr \"Display Power:state=\""); 
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
            String line; 
            String content = ""; 
            boolean flag = false; 
            while ((line = in.readLine()) != null)
            content = content + line; 
            if (content.contains("Display Power: state=OFF"))
                    flag = true;
            p.destroy();
            return flag;
  }
  • 唤醒屏幕
  if(getUrlFile.isScreenLock()){
        // 模拟Power键 
        Runtime.getRuntime().exec("adb shell input keyevent 26");
       // 模拟Home键
        Runtime.getRuntime().exec("adb shell input keyevent 3");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,898评论 25 709
  • 前言 做Android端功能自动化已有2年多的时间了,使用过的功能自动化框架有Robotium、Uiautomat...
    海波笔记阅读 17,125评论 3 66
  • 软件的持续集成工具之一,易上手,功能强大,话不多说,干货奉上。我的博客地址:http://blog.lzoro.c...
    格子Lin阅读 12,283评论 10 41
  • 产品经理有三大领域的技术需要去攻克,分别是:客户端相关技术、服务端相关技术、交互相关技术 一、客户端相关技术 1....
    Kince_X阅读 3,475评论 8 97
  • 6月份的尾巴是巨蟹座,快到蟹子们的生日啦!想想去年也是差不多这个时候,电话祝你生日快乐,那头的你应该是惊喜更多一些...
    叮哩个咚阅读 276评论 0 2