我正在开发Android上的应用程序,它将共享屏幕到另一个Android设备。这个应用程序将作为服务在后台运行。
我想捕获屏幕(当前屏幕),将其保存为JPEG并通过UDP连续发送到其他Android设备。
但我的问题是如何通过捕获帧缓冲来捕获当前屏幕。
请帮忙。
答案 0 :(得分:7)
通过打开/ dev / graphics / fb0设备访问Android framebuffer(以及其他Linux系统)。这需要root访问权限,即使使用root访问权限,它也无法在所有设备上正常运行。大多数设备使用一对帧缓冲器并在它们之间切换。更大的问题是即使使用root电话,Dalvik机器的用户ID也没有权限访问帧缓冲区(fb0)设备。这意味着您永远无法直接从Java代码打开和读取fb0设备。您将需要以root身份运行本机Linux应用程序,它将能够访问fb0(在用户授予之后)。我成功地完成了这项工作,这是非常具有挑战性的,也是谷歌不赞成的。我仍然可能将其转变为商业应用程序,但限制和不兼容性使概率非常低。
答案 1 :(得分:3)