17

这段代码很容易

Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

而且效果很好,但是如果有活动,情况就是如此。

如何从服务中截取屏幕截图?

我的目标是在一小时内截取屏幕截图,例如每小时关闭屏幕,例如在 12 中,然后在 1 中,然后在 2 中 .... 等等

4

2 回答 2

7

要为您的活动捕获屏幕截图,您必须需要一个View活动,并且哪个活动不存在于您的服务中,因此您必须创建一个 TimerTask,它将每小时调用您的活动,并且您的活动会以当前显示视图和你可以从中捕捉ScreenShot到。(我认为这只是您的问题的解决方案。)

或者,如果您想截取当前设备屏幕(任何应用程序)的屏幕截图,则必须获得root 权限,并读取framebuffer将提供当前屏幕原始数据的内容,然后将其转换为位图或您可以执行的任何图片文件你的服务。

于 2012-05-07T12:48:44.897 回答
3

Android 屏幕截图库 (ASL) 提供了拍摄手机屏幕快照的方法,无需签署您的应用程序或拥有对 Android 系统的特权(根)访问权限 单击此处获取 ASL

于 2013-01-02T09:44:21.003 回答