我正在为安全意识的雇主开发
Android应用程序.他担心
Overview Screen(最近的任务列表)上出现的屏幕快照会泄漏敏感信息,并希望我在系统拍摄之前放置程序的启动画面.不幸的是我没有找到任何办法.
我试过的事情:
>在onPause功能中为启动画面的视图充气. (没有效果,即使使用了bringToFront和setVisibility(View.VISIBLE).)
>在onCreate中膨胀启动画面的视图,并在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设备或模拟器上测试您的代码.