[英]prevent screen capture in Android apps
我想知道是否有一种方法可以通过某些“onXXXXX”回调方法或接收到的广播来检测是否有其他进程即将截取我的应用程序显示的屏幕截图。 例如,如果 SDK 工具或其他一些屏幕捕获应用程序执行“屏幕捕获”,我希望收到通知,然后决定我应该允许还是禁止屏幕捕获。
如果这是不可能的,有没有办法锁定显示,所以没有其他进程可以截屏我的显示?
这在三星 Tab 2 7" 上对我有用
使用以下方法,只需将FLAG_SECURE
添加到 Window 标志
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
不支持在 Android 上截取另一个应用程序的方法。 唯一的方法涉及生根或使用 SDK,这两种方法都几乎没有机会阻止或接收它的通知。 如果另一个应用程序截取了您的屏幕截图,则默认情况下它使用不受支持的方法,并且可能随心所欲。
我想澄清一下,我并不是暗示您不应该使用任何可用的方法来保护您的应用程序。 我只是让您知道,如果不使用不受支持的方法,可能无法做到这一点,而且即使您确实使用它们,您也可能无法 100% 安全地防止屏幕截图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.