如何以编程方式检测是否有任何屏幕录制过程/应用程序正在Android中运行?

问题描述:

我不希望用户截取或记录我的应用程序的屏幕。我已将安全标志添加到窗口。这可以防止用户采取屏幕截图和录制屏幕。如何以编程方式检测是否有任何屏幕录制过程/应用程序正在Android中运行?

如果屏幕录制已打开,我的应用程序将阻止录制内容,但会录制音频。

在某些有根的设备上,安全标志可能无法按预期工作。 所以我只是想检测是否有任何屏幕录制应用程序/进程在后台运行,以便我可以隐藏敏感数据并防止它被记录。

有没有什么办法可以检测屏幕录像是否开启?

+1

有没有办法,如果你在说根。使用root用户可以将所有内容记录到GPU输出级别的不同层上。我相信你无能为力。 –

+0

由于Android不知道什么是录制内容,因此您需要在当前正在运行的流程中比较这些包,因此您需要在市场上有一个流行的和不太流行的录制应用程序列表(请确保获取包名称)应用程序。 – Enzokie

有没有什么办法可以检测到屏幕录像是否开启?

所以我只是想,如果任何屏幕记录应用程序/进程在后台运行,这样我可以隐藏敏感数据,并防止它被记录,以发现。

由于屏幕记录不要求一个特定的记录的应用程序或进程(例如,adb shell screenrecord),并且由于你无法知道特定的应用或使用的媒体投影API处理的方式,这似乎是不切实际的。而且,在现代版本的Android上,无论如何,您无法知道其他进程在运行。另外,没有什么能阻止用户将另一台摄像机指向设备屏幕并以此方式记录其内容。

我不希望用户采取截图或屏幕记录我的应用程序

的那么不写应用程序。 FLAG_SECURE背后的想法是帮助捍卫用户对抗第三方,而不是防止开发者对用户。