如何在Android中以编程方式拍摄屏幕截图?

如何在Android中以编程方式拍摄屏幕截图?,android,screenshot,Android,Screenshot,我想制作一个每10秒拍摄一次设备屏幕截图的应用程序,即使应用程序在后台运行 我不知道怎么做 有没有办法在没有根目录的设备上实现这一点?首先获取代码,在android中以编程方式拍摄屏幕快照。它是可用的堆栈溢出。然后使用handler每隔10秒调用一次此方法。为了捕获活动的屏幕截图,您需要从活动中获取视图,而这在你的服务中并不存在,所以你必须制作一个TimerTask,它会随时调用你的活动,以获取活动的当前视图,你可以从中捕获屏幕截图 否则,如果您想拍摄当前设备屏幕或任何其他应用程序的屏幕截图,则

我想制作一个每10秒拍摄一次设备屏幕截图的应用程序,即使应用程序在后台运行

我不知道怎么做


有没有办法在没有根目录的设备上实现这一点?

首先获取代码,在android中以编程方式拍摄屏幕快照。它是可用的堆栈溢出。然后使用handler每隔10秒调用一次此方法。

为了捕获活动的屏幕截图,您需要从活动中获取视图,而这在你的服务中并不存在,所以你必须制作一个TimerTask,它会随时调用你的活动,以获取活动的当前视图,你可以从中捕获屏幕截图

否则,如果您想拍摄当前设备屏幕或任何其他应用程序的屏幕截图,则必须具有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();
                         }
是如何在Android上捕捉屏幕截图

也是一个例子


还有一个非常类似的要求。

实际上,该代码仅在应用程序打开时才会截图。此外,即使用户正在使用任何其他应用程序,我也希望截图。您是否有代码可以为我提供当前显示的屏幕的原始数据?此代码需要root访问权限。没有根目录的设备有什么办法吗?我告诉过你原始选项需要根目录访问,你读过使用定时器的第一个解决方案吗?