后台

时间:2015-09-09 07:12:45

标签: android screenshot rooted-device

我需要开发一个没有UI(使用后台服务)的Android应用程序,它将无限期运行。该服务将每秒捕获屏幕截图,即用户在屏幕上执行的任何操作将被捕获为屏幕截图并存储在电话的内部存储器或SD卡中。屏幕截图将被替换,仅存储最后更新的屏幕截图,因此存储限制没有问题。我读过有关Android ServiceIntentService的内容,但我无法找到适合我案例的最佳选择。我该如何处理?或者,有没有其他方法可以在不使用Service / IntentService的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

对于我的申请,我使用了以下内容:

public static void takeScreenshot() {
    ShellInterface.runCommand("input keyevent " + KeyEvent.KEYCODE_SYSRQ + " &");
}

显然是ShellInterface.runCommand(),是我运行root命令的实用程序方法。 KEYCODE_SYSRQ用作打印屏幕按钮,在我的测试中适用于Android版本的大多数设备。就连三星也没有打破它!

请注意,这会调用核心系统屏幕截图功能。因此,虽然它适用于所有应用程序并且将真正捕获屏幕上的所有内容,但它不能让您选择保存位置,因此您可能必须查看文件系统以找出何时添加文件并采取相应的行动。