我想创建一个应用程序,每10秒钟截取设备的屏幕截图,即使应用程序在后台运行也是如此。
我不知道该怎么做。
对于没有植根的设备,有没有办法做到这一点?
答案 0 :(得分:0)
为了捕获您的活动的ScreenShot,您需要一个来自您的活动的视图,并且该视图不会出现在您的服务中,因此您必须制作一个TimerTask,它将在每个时刻调用您的活动以获取当前视图活动,您可以从中捕获ScreenShot。
否则如果您想拍摄当前设备屏幕或任何其他应用程序的ScreenShot,则必须获得root权限,并读取帧缓冲区,以获取当前屏幕的原始数据,然后将其转换为位图或任何图片文件。
try {
Process sh = Runtime.getRuntime().exec("su", null,null);
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII"));
os.flush();
os.close();
sh.waitFor();
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
答案 2 :(得分:-1)
首先采用代码在android中以编程方式截取屏幕截图。它是可用的堆栈溢出。然后使用handler每隔10秒调用一次该方法。