Android 防止截屏和录屏

news/2024/10/16 18:22:21 标签: android

通过给当前的window对象设置标记WindowManager.LayoutParams.FLAG_SECURE来防止截屏和录屏

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 防止截屏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
        setContentView(R.layout.activity_main);
    }

设置以后,用手机快捷键截屏会提示如下:“当前页面涉及隐私内容,防止截屏和录屏”

如果在当前页面想根据不同内容来取决于是否设置禁止截屏的时候,可以通过

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);

在Android应用中,如果你已经设置了禁止截屏,然后想根据内容的变化动态取消这个限制,可以通过修改Window的标志来实现。以下是具体步骤:

  1. 设置禁止截屏
    通常通过以下代码设置禁止截屏:

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

  2. 取消禁止截屏
    当内容发生变化时,调用以下代码来取消这个限制:

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);

  3. 监控内容变化
    根据业务逻辑,在监控到特定内容变化时调用clearFlags方法。例如,你可以在数据更新的回调方法、监听器、或观察者模式中执行这一操作。

// 监听内容变化
someObservable.addObserver(new Observer() {
    @Override
    public void update(Observable o, Object arg) {
        // 内容发生变化时,取消禁止截屏
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
    }
});

这种方法可以确保在内容发生变化时,用户能够再次截屏。


http://www.niftyadmin.cn/n/5708332.html

相关文章

同行评审流程详解

同行评审流程中,稿件被拒很正常,可能是由于稿件结构有问题,论据不足,表达不准确等诸多因素,接下来带你走一遍同行评审流程,看论文投稿过程中有哪些拦路虎,掌握拒稿因素,论文投稿才能…

Redisson使用全解

redisson使用全解——redisson官方文档注释(上篇)_redisson官网中文-CSDN博客 redisson使用全解——redisson官方文档注释(中篇)-CSDN博客 redisson使用全解——redisson官方文档注释(下篇)_redisson官网…

数字媒体技术基础:视频编码中的比特率

在数字媒体时代,视频已成为信息传播和娱乐的重要载体。无论是在在线视频、电视广播,还是电影制作中,比特率 Bitrate都是决定视频质量和传输效率的关键参数。正确理解和应用比特率,对于视频工程师、编辑人员以及内容创作者优化工作…

【SSH】主机连接虚拟机 Windows

目录 1. 启动 SSH 服务2. 避免防火墙阻止了端口 223. 开始 SSH 连接4. DataGrip 远程连接虚拟机数据库 使用 SSH 连接是为了远程连接数据库等其他操作 因为一些操作不想在本机上运行,不想下载在本机上,就使用虚拟机代替完成 1. 启动 SSH 服务 首先&…

修改Linux的IP地址

方法一(特点:命令执行后,IP立即修改,但重启后会恢复原来的IP地址) 1.含义: inet ip地址 netmask 子网掩码 broadcast 广播地址 inet 192.168.44.129 netmask 255.255.255.0 broadcast 192.168.1.255 …

【windows】win10提示‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

问题日志 adb devices adb 不是内部或外部命令,也不是可运行的程序或批处理文件 解决方案 下载adb,将adb放到如下目录 将 adb.exe AdbWinApi.dll AdbWinUsbApi.dll 文件放到以下目录 C:\Windows\SysWOW64 C:\Windows\System32 测试验证 adb An…

结合seata和2PC,简单聊聊seata源码

当前代码分析基于seata1.6.1 整体描述 整体代码流程可以描述为 TM开启全局事务,会调用TC来获取XID。TC在接收到通知后,会生成XID,然后会将当前全局事务保存到global_table表中,并且返回XID。在获取到XID后,会执行业务…

搜维尔科技:SenseGlove Nova 2触觉反馈手套开箱测评

SenseGlove Nova 2触觉反馈手套开箱测评 搜维尔科技:SenseGlove Nova 2触觉反馈手套开箱测评