由于显示了敏感数据,我主要想在最近的应用程序列表中空白屏幕。为此,解决方案是使用:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
但这也不允许截图,这是一个问题。
有没有办法在最近的应用程序列表中显示空白屏幕(或预定义的图像),同时仍然允许截图?
由于显示了敏感数据,我主要想在最近的应用程序列表中空白屏幕。为此,解决方案是使用:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
但这也不允许截图,这是一个问题。
有没有办法在最近的应用程序列表中显示空白屏幕(或预定义的图像),同时仍然允许截图?
我已经尝试过这种方法并且它正在工作。为了使最近列表中的屏幕空白并仍然允许屏幕,您可以设置标志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);
}
我认为你需要的是:
android:excludeFromRecents="true"
把它放在你的android清单中<activity>(activity you want to exclude from recents)</activity>
在做了一些研究之后,我发现目前这是不可能的。
这onCreateThumbnail
似乎是您正在寻找的功能。不幸的是,这个功能似乎没有实现或至少不起作用。
正如 Ped7g 指出的那样:自 2014 年以来,onCreateThumbnail 将“无法修复”。
它还在 Android onCreateThumbnail 参考页面中被标记为已弃用以删除
此功能很可能永远不会起作用。
如果您的活动显示敏感数据,出于安全原因,最好不要让用户制作屏幕截图。如果您甚至担心最近的应用程序屏幕,为什么您不担心同时截图?我认为,Android OS SecureFlag 旨在保护您的数据和截图功能,只是否定了它的目的。
如果您仍然想要此功能,您可以尝试使用此标志将所有敏感数据移动到单独的活动中。在这种情况下,您将保护您的敏感数据,并且在其他应用程序的活动中将有能力制作屏幕截图。