【问题标题】:Allow screenshots using FLAG_SECURE允许使用 FLAG_SECURE 截屏
【发布时间】:2018-09-05 13:46:52
【问题描述】:

使用 FLAG_SECURE,不允许截屏。我希望我的应用程序能够捕获屏幕,但是当它进入后台时被模糊或隐藏。

你知道有什么办法吗? FLAG_SECURE可以做到吗?

我阅读了这个主题 (Android : Unable to screenshot after using method FLAG_SECURE),但没有人对此有任何有效的答案。

使用 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 排除应用程序出现在最近的应用程序上,但不确定是否阻止 android 系统获取和存储状态屏幕截图。

任何建议 谢谢

【问题讨论】:

标签: java android security kotlin android-security


【解决方案1】:

确实有可能。

public override fun onPause() {
    window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
    super.onPause()
}

public override fun onResume() {
    super.onResume()
    window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}

这基本上只在应用程序被抛到后台时设置安全标志,并在进入前台时清除标志,因此您将能够制作屏幕截图。 我在一些抽象的 Activity 中使用了这段代码。

【讨论】:

  • 你测试过这个吗?如果视图完成渲染,则忽略 clearFlags 调用。在 Android 9 之前,我已经在 Android 6 上对此进行了测试。
  • addFlags 调用在 Android 7 上也不适用于我
  • 此解决方案不适用于较旧的 Android 版本。我注意到它仅适用于 Android 8 及更高版本。
  • 你在哪个文件中添加这个以及在哪里?
  • @verunar 在活动中。
猜你喜欢
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多