Android - 在后台拍摄 "Screenshot" 应用程序 运行

Android - Take a "Screenshot" of an App Running in the Background

我读过很多关于应用程序在后台运行时截取当前用户屏幕截图的问题,但没有看到很多文章处理应用程序截取 "screenshot"它本身在后台运行。

我希望无需以任何方式 root phone 即可完成此操作,因为我希望我制作的应用程序可供所有人使用(此解决方案可能不涉及 root,但只是把它扔在那里)。

该应用程序的最终目标是让该应用程序能够截取自己的屏幕截图并将该屏幕截图保存为用户背景墙纸。我还想添加其他几个功能,但我只想知道,这可能吗?如果是这样,任何人都可以向我展示一些入门代码或 link 我吗?如果之前有人问过这个问题,请告诉我,否则,我们将不胜感激。谢谢!

首先,我不太确定我是否正确理解了您的要求。理想情况下,当应用程序处于后台时,它进入后台时和处于后台时的状态将保持不变。所以你可以截取你的应用程序的屏幕截图,当应用程序刚刚进入后台时,这可以在 activity 的 onPause() 中处理。

要截取您的应用程序的屏幕截图,请将整个布局放在 ViewGroup 中,然后使用以下代码。

    parentLayout = (RelativeLayout)findViewById(R.id.parentLayout);
    parentLayout.setDrawingCacheEnabled(true);
    parentLayout.buildDrawingCache();

当您想截屏时,使用

Bitmap中获取屏幕截图
    bitmap = parentLayout.getDrawingCache();

当应用程序进入后台时,上面的行应该在您的 onPause() 中。或者您也可以在您的应用程序处于后台时触发它,并查看它是否被捕获。我不太确定在后一种情况下它将如何工作。