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

Java 如何以编程方式检测Android中是否正在运行任何屏幕录制进程/应用程序?,java,android,security,screen-recording,screen-grab,Java,Android,Security,Screen Recording,Screen Grab,我不希望用户截图或记录我的应用程序的屏幕。我已将安全标志添加到窗口。这会阻止用户截图和录制屏幕 如果屏幕录制已打开,“我的应用”会阻止录制内容,但会录制音频 在某些根设备上,安全标志可能无法按预期工作。 所以我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便隐藏敏感数据并防止其被录制 我有没有办法检测屏幕录制是否打开 我有没有办法检测屏幕录制是否打开 没有 所以我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便隐藏敏感数据并防止其被录制 由于屏幕录制不需要录制特定的应用程序或流程

我不希望用户截图或记录我的应用程序的屏幕。我已将安全标志添加到窗口。这会阻止用户截图和录制屏幕

如果屏幕录制已打开,“我的应用”会阻止录制内容,但会录制音频

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

我有没有办法检测屏幕录制是否打开

我有没有办法检测屏幕录制是否打开

没有

所以我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便隐藏敏感数据并防止其被录制

由于屏幕录制不需要录制特定的应用程序或流程(例如,
adb shell screenrecord
),而且您无法了解使用媒体投影API的特定应用程序或流程,因此这似乎不切实际。而且,在现代版本的Android上,你无论如何都无法知道还有哪些进程正在运行。此外,没有任何东西可以阻止用户将另一个摄像头指向设备屏幕并以这种方式记录其内容

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


然后不要编写应用程序。
FLAG\u SECURE
背后的思想是帮助保护用户免受第三方的侵害,而不是保护开发人员免受用户的侵害。

如果你说的是root,那就没有办法了。使用root,用户可以记录不同层上的所有内容,直到GPU输出级别。我相信你对此无能为力。你需要有一个市场上流行和不太流行的录音应用的列表(确保获取软件包名称),因为你将在当前运行过程中比较这些软件包,因为Android不知道什么是录音应用。我对FLAG_SECURE很满意,但它仍然录制音频。他们本应该阻止这一切,虽然答案是好的,FLAG_SECURE背后的想法在我看来是错误的。在许多用例中,开发人员可能需要保护来自用户的数据,比如只为付费用户提供数据,而这些数据不应该通过screenshots@Abbas:
FLAG_SECURE
未设计为DRM解决方案。