分享

android代码运行cmd命令截屏

 昵称3884271 2015-11-25

在android代码中使用adb命令来截屏

直接在PC上cmd下可调用adb shell screencap -p /sdcard/screenshot.png来截屏,截取到的内容将包括在线视频等原本需要单独处理的内容。

使用过在ondraw()里面获取cache或者view来截取屏幕,但那样无法获取在线视频内容,但是通过在PC上调用adb命令,可以截取屏幕,因此想到在android代码中运行cmd里面的命令行,将图片保存起来即可。

下面的只是初步代码,适用于有root权限的机器(暂时没有时间尝试在没有root权限的情况调用,有兴趣的可以自己尝试)

这段代码的缺陷在于无法获知什么时候截取完毕屏幕的内容、什么时候保存,因此,我的做法是延时2s去读取指定文件夹下的这个文件。如果有知道解决的,请在后面回复中贴出,让大家一起进步

  1. public static void savecreen(Activity ac, String name) {  
  2.         String cmd="screencap -p /sdcard/"+name+".png";  
  3.         try {  
  4.             // 权限设置  
  5.             Process p = Runtime.getRuntime().exec("su");  
  6.             // 获取输出流  
  7.             OutputStream outputStream = p.getOutputStream();  
  8.             DataOutputStream dataOutputStream = new DataOutputStream(  
  9.                     outputStream);  
  10.             // 将命令写入  
  11.             dataOutputStream.writeBytes(cmd);  
  12.             // 提交命令  
  13.             dataOutputStream.flush();  
  14.             // 关闭流操作  
  15.             dataOutputStream.close();  
  16.             outputStream.close();  
  17.         } catch (Throwable t) {  
  18.             t.printStackTrace();  
  19.         }  
  20.     }  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多