我想知道是否有办法通过一些“onXXXXX”回叫方法或接收广播来检测,如果其他一些过程即将拍摄我应用程序显示的屏幕截图。例如,如果SDK工具或其他一些屏幕捕获应用程序执行“屏幕捕获”,我希望得到通知,然后决定是否应该允许或禁止屏幕捕获。
如果无法做到这一点是否有办法锁定显示屏,以便其他进程无法屏幕捕获我的显示器?
答案 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%安全地对付截图。