1

如何在 android 4.0+ 上拦截截屏事件?我想在通过音量下键+电源键截屏时执行一些自己的代码。

4

2 回答 2

3

这里有一篇关于防止截图的好博文,但我不知道是否有办法在用户执行截图时执行代码......

您可以使用 WindowManager 中的FLAG_SECURE以避免屏幕截图

例子 :

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);
  }
}
于 2013-05-13T14:01:00.670 回答
0

这不太可能,您最终可以监听屏幕截图保存位置的更改并使用 FileObserver 执行一些代码

https://developer.android.com/reference/android/os/FileObserver.html

这里最大的问题是,许多设备使用不同的截屏方式,从根本无法截屏到甚至无需使用任何键即可截屏。

使用其他答案中建议的 Flag.Secure 在某些情况下有效,在其他情况下会弄乱您的屏幕。

于 2013-05-13T14:00:27.287 回答