android - 需要从 Android "Overview Screen"隐藏程序内容

标签 android

我正在为一位注重安全的雇主开发 Android 应用程序。他担心 Overview Screen 上出现的屏幕快照(又名最近任务列表)泄露敏感信息,并希望我在系统拍摄该照片之前设置程序的初始屏幕。不幸的是,我还没有找到任何方法。

我尝试过的事情:

  • onPause 函数中扩大初始屏幕的 View 。 (没有效果,即使使用 bringToFrontsetVisibility(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/

相关文章:

android - 如何访问回收站 View 中的值?

java - Android Studio - 无法从预装的 sqlite 数据库检索数据

android - WorkManager 作业未重新安排或一段时间后未触发

Android 应用内计费错误

android - android支持多国语言吗?

android - 如何缩放android中已经存在的位图?

android - 果冻 bean 上TextView的requestFocus慢

android - 如何为 React Native App 提供 Android notch 支持

android - 由于 firebase 数据库的异步特性,无法从 firebase 数据库检索数据

java - Android Google API 客户端未连接