我目前正在构建的应用程序要求应用程序在出于安全原因被推送到后台时,必须防止操作系统截取应用程序的屏幕截图。这样,当在应用程序之间切换时,它将无法看到最后一个活动屏幕。
我计划将此功能放在应用程序类的onPause方法中,但首先我需要了解如何实现此功能。
那么有没有人知道如何解决这个问题呢?
发布于 2012-06-20 22:33:04
在某些设备上使用WindowManager.LayoutParams.FLAG_SECURE时要小心(在三星Galaxy ACE上验证,例如GT-S5830),这会使视图混乱。看起来像是三星特有的漏洞。我推荐以下几点:
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
}
这是一个乱七八糟的屏幕:
这在ICS三星手机上工作正常,所以我假设问题是由姜饼设备(或更老的设备)造成的。
发布于 2018-10-25 02:50:31
这里有一个隐藏应用程序内容的解决方案,当应用程序被放到后台时,用闪屏覆盖它。这不是使用FLAG_SECURE技术,我只是简单地覆盖了屏幕的onPause和onResume方法,并修改了视图以显示一个涵盖了后面所有内容的视图。
发布于 2019-10-19 12:48:06
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
这对我来说很有效,它阻止了截图和任何内置或第三方录制应用程序从录制屏幕。
https://stackoverflow.com/questions/9822076
复制相似问题