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

时间:2015-04-15 06:04:46

标签: android screenshot android-recents

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

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

但这也禁止截图,这是一个问题。

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

4 个答案:

答案 0 :(得分:4)

我尝试过这种方法,但它正在发挥作用。为了使屏幕在最近的列表中保持空白并仍然允许屏幕,您可以在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);     
}

答案 1 :(得分:1)

如果您的Activity显示敏感数据,出于安全原因最好不要让用户制作屏幕截图。如果你甚至担心最近的应用程序屏幕,为什么你不担心屏幕截图同时?我认为,Android OS SecureFlag旨在保护您的数据和截图能力,只是否定了它的目的。
无论如何,如果您想要此功能,您可以尝试将所有敏感数据移动到具有此标志的单独活动。在这种情况下,您将保护您的敏感数据,而在其他应用程序的活动中,您将能够制作屏幕截图。

答案 2 :(得分:1)

在做了一些研究后,我发现这是不可能的。

onCreateThumbnail似乎是您正在寻找的功能。不幸的是,这个功能似乎没有实现或者至少不起作用。

正如Ped7g所指出的:自2014年以来,onCreateThumbnail“将无法修复”。

它也被标记为已被弃用 Android onCreateThumbnail reference page

此功能很可能无法正常工作。

答案 3 :(得分:0)

我认为你需要的是:

android:excludeFromRecents="true"

将其放入您的<activity>(activity you want to exclude from recents)</activity>

内的Android清单中