防止Android应用中的屏幕截图

时间:2011-07-20 15:36:57

标签: android screenshot

我想知道是否有办法通过一些“onXXXXX”回叫方法或接收广播来检测,如果其他一些过程即将拍摄我应用程序显示的屏幕截图。例如,如果SDK工具或其他一些屏幕捕获应用程序执行“屏幕捕获”,我希望得到通知,然后决定是否应该允许或禁止屏幕捕获。

如果无法做到这一点是否有办法锁定显示屏,以便其他进程无法屏幕捕获我的显示器?

2 个答案:

答案 0 :(得分:19)

这适用于三星Tab 2 7“

使用the following approach,只需将FLAG_SECURE添加到Window Flags

即可
public class FlagSecureTestActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().setFlags(LayoutParams.FLAG_SECURE,
                         LayoutParams.FLAG_SECURE);

    setContentView(R.layout.main);
  }
}

警告您可能需要更改

LayoutParams

WindowManager.LayoutParams

答案 1 :(得分:5)

no supported method在Android上截取其他应用的截图。唯一的方法是使用root或使用SDK,它们几乎不提供阻止或接收通知的机会。如果另一个应用程序截取了您的屏幕截图,则默认使用不受支持的方法,并且可以随意使用。

我想澄清一点,我并不是说你不应该使用任何可用的方法来保护你的应用程序。我只是告诉你,如果不使用不支持的方法,这可能是不可能的,即使你使用它们,你可能也不会100%安全地对付截图。