Android从代码中截取屏幕截图,具有root访问权限

Rom*_*man 2 java android screenshot framebuffer

我需要从后台运行的服务中截取屏幕截图.屏幕截图可以是前景中的应用程序,即使它不是我的应用程序,这就是我无法使用DrawingCache的原因.我四处寻找并找到了这个

process = Runtime.getRuntime().exec("su -c cat /dev/graphics/fb0"); InputStream is = process.getInputStream();

但我不知道如何处理流.如何将其添加到位图中?我不需要将它保存到文件中我只需要将其保存在变量中.这适用于root手机.

任何帮助深表感谢.

Rom*_*man 6

嗯,似乎我自己就是这个.到目前为止,这是我发现的,对于那些有类似问题的人.请注意,这因版本而异,我正在运行2.3 Gingerbread.

我找到了2个文件/system/bin- screencap和screenshot.

screencap以我不知道如何解码的格式返回一个位图,同时screenshot在sdcard的根目录下创建一个名为tmpshot.bmp的常规bmp文件(既不接受任何类型的命令参数.它们似乎不接受-h, -help, - help等).

tmpshot.bmp现在似乎是一个可行的解决方案,但我希望避免写入和读取SD卡,因为这是相当的瓶颈.我会一直在寻找,但对于那些现在需要解决方案的人来说,你就是这样.

编辑:经过进一步的试验,我发现screencap另一个rom 的二进制文件(MIUI是特定的)实际上提供了一些选项,其中(miui)screencap -t png /sdcard/screen.png产生一个有效的png截图.