隐藏"最近的应用列表"中的屏幕,但允许屏幕截图

raj*_*ath 15 android screenshot android-recents

由于显示敏感数据,我主要想在最近的应用列表中清空屏幕.为此,解决方案是使用:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
Run Code Online (Sandbox Code Playgroud)

但这也不允许截图,这是一个问题.

有没有办法在最近的应用程序列表中显示空白屏幕(或预定义的图像),同时仍然允许截图?

Vru*_*tri 7

我已经尝试过这种方法,并且可以正常工作。为了使屏幕在最近列表中空白并仍允许屏幕显示,您可以在中设置标志onPause()并在中清除标志onResume()

@Override
protected void onPause() {
  super.onPause();
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);
}

@Override
protected void onResume() {
    super.onResume()
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);     
}
Run Code Online (Sandbox Code Playgroud)

  • 在 Android 8、9、10 上运行良好,但对于以前的版本则不起作用。 (2认同)

Str*_*der 0

我认为你需要的是:

android:excludeFromRecents="true"
Run Code Online (Sandbox Code Playgroud)

把它放在你的 android 清单中<activity>(activity you want to exclude from recents)</activity>

  • 嗯...好吧,你可以用一张大的黑色图像覆盖你的活动,并在你的`onPause()`中使其**可见**,并在你的`onResume()`中使其**消失** (4认同)
  • @Strider 不起作用,因为缩略图是在调用 `onPause()` 方法之前创建的 (4认同)
  • 这会从最近使用的列表中完全删除该应用程序,这不是我想要的 (3认同)