【发布时间】:2013-05-13 13:54:11
【问题描述】:
如何在 android 4.0+ 上拦截截屏事件? 音量下+电源键截图的时候我想执行一些自己的代码。
【问题讨论】:
标签: android screenshot
如何在 android 4.0+ 上拦截截屏事件? 音量下+电源键截图的时候我想执行一些自己的代码。
【问题讨论】:
标签: android screenshot
Here有一篇关于防止截图的好博文,但是我不知道有没有办法在用户执行截图时执行代码...
您可以使用 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);
}
}
【讨论】:
这不太可能,您最终可以监听屏幕截图保存位置的更改并使用 FileObserver 执行一些代码
https://developer.android.com/reference/android/os/FileObserver.html
这里最大的问题是,许多设备使用不同的截屏方式,从根本无法截屏,到甚至不用任何键都可以截屏。
使用其他答案中建议的 Flag.Secure 在某些情况下有效,在其他情况下会弄乱您的屏幕。
【讨论】: