22

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

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

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

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

4

4 回答 4

20

我已经尝试过这种方法并且它正在工作。为了使最近列表中的屏幕空白并仍然允许屏幕,您可以设置标志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);     
}
于 2018-03-23T05:34:51.773 回答
1

我认为你需要的是:

android:excludeFromRecents="true"

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

于 2015-04-15T06:08:10.930 回答
1

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

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

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

它还在 Android onCreateThumbnail 参考页面中被标记为已弃用以删除

此功能很可能永远不会起作用。

于 2015-04-17T07:23:39.777 回答
1

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

于 2015-04-15T06:30:25.870 回答