截取当前屏幕截图

时间:2011-12-26 09:04:59

标签: android screenshot

我正在开发Android上的应用程序,它将共享屏幕到另一个Android设备。这个应用程序将作为服务在后台运行。

我想捕获屏幕(当前屏幕),将其保存为JPEG并通过UDP连续发送到其他Android设备。

但我的问题是如何通过捕获帧缓冲来捕获当前屏幕。

请帮忙。

2 个答案:

答案 0 :(得分:7)

通过打开/ dev / graphics / fb0设备访问Android framebuffer(以及其他Linux系统)。这需要root访问权限,即使使用root访问权限,它也无法在所有设备上正常运行。大多数设备使用一对帧缓冲器并在它们之间切换。更大的问题是即使使用root电话,Dalvik机器的用户ID也没有权限访问帧缓冲区(fb0)设备。这意味着您永远无法直接从Java代码打开和读取fb0设备。您将需要以root身份运行本机Linux应用程序,它将能够访问fb0(在用户授予之后)。我成功地完成了这项工作,这是非常具有挑战性的,也是谷歌不赞成的。我仍然可能将其转变为商业应用程序,但限制和不兼容性使概率非常低。

答案 1 :(得分:3)

您可以通过启用

来获取布局的屏幕截图
setDrawingCacheEnabled(true);

的观点。

选中此link