我正在为一位注重安全的雇主开发 Android 应用程序。他担心 Overview Screen 上出现的屏幕快照(又名最近任务列表)泄露敏感信息,并希望我在系统拍摄该照片之前设置程序的初始屏幕。不幸的是,我还没有找到任何方法。
我尝试过的事情:
- 在
onPause
函数中扩大初始屏幕的 View 。 (没有效果,即使使用bringToFront
和setVisibility(View.VISIBLE)
。) - 在
onCreate
中膨胀启动画面的 View 并在onPause
中使用bringToFront
。 (同样,没有效果。) - 在
onPause
中调用setVisible(false)
。 (似乎几乎可以正常工作,因为当从程序切换开时屏幕会瞬间变黑,但显然在快照之前系统再次使其可见。) - 在
onPause
中对 View 的最顶层项目调用setVisibility(View.INVISIBLE)
。 (看起来它会起作用,但快照显然是在它生效之前拍摄的。)
我是一个中等水平的 Android 开发者,但我忍不住觉得我缺少一个简单的解决方案。
最佳答案
就我个人而言,我会 go with FLAG_SECURE
,并简单地阻止在任何地方显示这些东西:
public class FlagSecureTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(LayoutParams.FLAG_SECURE,
LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}
但是,IIRC,您可以覆盖 onCreateThumbnail()
以提供您自己的图像以用于最近的任务列表。请注意,这在 Android 5.0 中可能有所改变,因为他们已经全面检查了最近的任务列表,因此请务必在 5.0 设备或模拟器上测试您的代码。
关于android - 需要从 Android "Overview Screen"隐藏程序内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284778/