android代码运行cmd命令截屏

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

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

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

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

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

public static void savecreen(Activity ac, String name) {
		String cmd="screencap -p /sdcard/"+name+".png";
		try {
			// 权限设置
			Process p = Runtime.getRuntime().exec("su");
			// 获取输出流
			OutputStream outputStream = p.getOutputStream();
			DataOutputStream dataOutputStream = new DataOutputStream(
					outputStream);
			// 将命令写入
			dataOutputStream.writeBytes(cmd);
			// 提交命令
			dataOutputStream.flush();
			// 关闭流操作
			dataOutputStream.close();
			outputStream.close();
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}


  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值