Android 某些页面截屏显示黑屏

某些页面涉及到隐私,页面owner 不希望被截图,设置成FLAG_SECURE 属性之后,系统截图就是黑色的。这样的页面有很多比如账户密码设置页面等。

        dlg.getWindow().setFlags( WindowManager.LayoutParams.FLAG_SECURE);
设置了这个flag后, 系统会把当前窗口的 内容视为 安全隐私内容, 系统会阻止这些内容被截屏或者在不安全可靠的场景显示出来.
在Google的过程中, 发现这个flag可以实现以下功能:
  • 阻止屏幕截图
  • 在Recent apps(任务切换界面)中只显示应用名字和图标, 不显示内容
  • Google App的Now on tap功能不会去分析你的页面的内容
Android 防截屏
Android系统中禁止截屏的实现方式
1. 使用FLAG_SECURE属性
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //禁止当前页面截屏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
        setContentView(R.layout.activity_main2);
    }
2. 使用SurfaceView
在Android系统中,SurfaceView是一种可以在应用中显示图像和视频的组件。而且,SurfaceView还拥有一个特性,即可以禁止截屏。具体操作是在创建SurfaceView时,使用setSecure()方法来设置:
SurfaceView.setSecure(true);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值