当进入后台时,如何影响Android从应用程序拍摄的快照



我的问题是关于Android系统在进入后台时拍摄应用程序屏幕快照。我在应用程序中有一些安全的内容,我想隐藏在这一点上,因此如果用户进入后台并打开最近的应用程序,我可以始终为我的应用程序显示相同的内容(例如初始屏幕),而不是在进入后台之前可见的最后一个屏幕。

这可能吗?

谢谢。

请不要发布有关FLAG_SECURE的答案,我不希望屏幕变黑,并且还发现了一个错误:http://code.google.com/p/android/issues/detail?id=64086

使用 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);
      }
  }

这将防止截取该活动的屏幕截图。并将在最近的应用程序列表中显示该应用程序的空白屏幕。

编辑:

除此之外FLAG_SECURE似乎没有任何方法可以防止截屏。但是,我建议使用这种不干净的解决方法。我没有尝试过这个,只是一个想法:

  1. 覆盖活动的onPause()onBackPressed()方法。因此,当按下主页或后退按钮时,将调用这些按钮。

  2. 然后,在这些视图中,使用setContentView()显示另一个虚拟视图或启动画面。以便此启动视图成为最后一个显示的视图。

  3. 在第 2 点之后,调用 super.onPause()super.onBackPressed() ,以便截取此初始屏幕的屏幕截图。不要在第 2 点之前打电话给他们。

相关内容

最新更新