如何从没有根的应用程序中捕获其他Android应用程序的屏幕截图?

如何从没有根的应用程序中捕获其他Android应用程序的屏幕截图?,android,Android,我想截取在我手机上运行的Android应用程序的屏幕截图 我试着使用这个应用程序。这也可以在无底座手机上完成。 你知道如何从后台运行的服务中获取Android应用程序的屏幕截图吗 我希望我的服务定期捕获屏幕并发送到服务器 看看,可以通过编程从Android设备捕获屏幕截图,而无需拥有root访问权限。获取非您自己的应用程序屏幕截图的唯一方法是获取原始帧缓冲区。帧缓冲区通常位于/dev/fb0或/dev/graphics/fb0。在某些设备(如LG Optimus One)上,无需root权限即可

我想截取在我手机上运行的Android应用程序的屏幕截图

我试着使用这个应用程序。这也可以在无底座手机上完成。 你知道如何从后台运行的服务中获取Android应用程序的屏幕截图吗


我希望我的服务定期捕获屏幕并发送到服务器

看看,可以通过编程从Android设备捕获屏幕截图,而无需拥有root访问权限。

获取非您自己的应用程序屏幕截图的唯一方法是获取原始帧缓冲区。帧缓冲区通常位于
/dev/fb0
/dev/graphics/fb0
。在某些设备(如LG Optimus One)上,无需root权限即可访问,但在大多数设备(如Nexus S)上,您需要为此设置root权限。出于安全原因,这通常是不允许的,因为恶意应用程序可能会在后台截图并将其发送到远程服务器,显示电子邮件ID和密码等信息,在某些情况下还会显示银行帐户的详细信息。

从安卓5.0+开始,您可以使用SDK中名为“执行屏幕捕获”的新功能,而无需root权限。谷歌提供了一些示例代码。

同时按下锁定/电源按钮和主页/返回按钮,我希望获得执行此操作的代码。您应该在问题中提到,听起来您好像离题了(尽管您不知道)。该帖子的副本告诉我们如何从应用程序本身创建视图的快照。我想从服务中获取屏幕截图,而不考虑应用程序我可以在没有桌面应用程序的情况下运行程序。在ScreenshotService.java中有一个方法retreiveRawScreenshot()。它正在连接到本机应用程序。该本机应用程序是否在PC中运行@Abi NO!读一下:上面的帖子也是从申请中摘取的。我想运行一个服务后台,它会截取手机上运行的应用程序的屏幕截图并发送到服务器。@Abi AFAIK如果你想截取当前设备屏幕(任何应用程序)(我想这就是你要找的)的屏幕截图,那么你需要有root权限。屏幕截图UX也适用于无根手机,但仅限于选定型号。从服务中截图合法吗。我想将其用于移动跟踪,而不是用于任何恶意应用。您可以使用服务调用应用程序中的方法来拍摄自己应用程序的屏幕截图,但如果不使用帧缓冲区,则无法将其用于其他应用程序。虽然您可能合法使用它,但许多应用程序可能会滥用它,因此它在非根设备上基本不可用。+1这非常感谢。我注意到在我较新的nexus设备4.4.4+上,缓冲区不在这两个位置,你知道它可能移动到了哪里吗?