Intereting Posts
   

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

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

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

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

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

我想你需要的是:

 android:excludeFromRecents="true" 

把它放在你的(activity you want to exclude from recents)里面的你的机器人清单中(activity you want to exclude from recents)

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

经过一些研究后,我发现这是不可能的。

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

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

在Android onCreateThumbnail参考页面中,它也被标记为已弃用

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

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