前言

这个需求是显示在最近任务栏,但不让人预览。

正文

关于这个问题,其实让人很恼火,为啥不让人看呢?

不过需求贵需求,作为程序猿,我们的任务就是为了完成各种奇葩的需求。

下面分享几种可以实现的方式。

使用FLAG_SECURE

在Activity中的onCreate()中 设置窗口的Flags属性

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    //在这个之前
    setContentView(R.layout.main_activity);

设置之后,预览界面就是乌漆嘛黑的(我这是Android P)

WindowManager.java中

   /** Window flag: treat the content of the window as secure, preventing
    * it from appearing in screenshots or from being viewed on non-secure
    * displays.
    *
    * <p>See {@link android.view.Display#FLAG_SECURE} for more details about
    * secure surfaces and secure displays.
    */
   public static final int FLAG_SECURE             = 0x00002000;
缺点

就是无法截图和录屏,录屏了都是黑色。

onPause()盖一层界面

这种我使用了解决视频退出再进来时闪一下问题。

也就是onpause时盖上一层界面盖住,这个也是可以的,但个别情况下还是存在一些问题。最后我用了第一种方式解决。

参考文章

  1. Android最近任务预览页面,概览屏幕预览图修改,敏感信息预览图隐藏实现

相关文章

暂无评论

none
暂无评论...