android - 在 fragment 中禁用屏幕捕获

标签 android fragment screenshot

根据 android 文档,我们可以在类似

的 Activity 中禁用屏幕/视频捕获
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
                WindowManager.LayoutParams.FLAG_SECURE);

但是我如何在 fragment 中实现相同的效果。 例如,假设我有一个包含五个 fragment 的 Activity ,但我想仅在五个 fragment 之一中禁用屏幕/视频捕获,而不在其他 fragment 中禁用。

这样做是

getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

在 fragment 内禁用所有 fragment 中的屏幕/视频捕获。

我是否应该根据 fragment 在 Activity 中编写启用/禁用屏幕捕获的逻辑。

最佳答案

FLAG_SECURE 是一个窗口级别的能力;您不能将它仅应用于窗口的一部分(例如, Activity 中的一个 fragment )。

如果“一个有五个 fragment 的 Activity ”是指“一个同时在屏幕上有五个 fragment 的 Activity ”,那么 AFAIK 你无法完成你想要的。

如果“一个有五个 fragment 的 Activity ”是指“一个有五个 fragment 的 Activity ,其中一次只有一个可见,例如 ViewPager 中的页面”,那么您需要在该 Activity 进入和离开屏幕时切换 FLAG_SECURE

关于android - 在 fragment 中禁用屏幕捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47981321/

相关文章:

android - 在 View 寻呼机中查看上一个 View 和下一个 View 之间的重叠

android - 空对象引用上的“boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()”

android - 通过 Android 设备上的电话扬声器播放音频

android - setEmptyView 安卓 ListView

Android 中的 Javascript 和 HTML

java - Android Java 检查可绘制/禁用点击

java - 布局更改时的 fragment 管理

浏览器顶部的 python 屏幕截图

c# - XNA 截图显示了 pre-Bloom,而不是最终渲染

ios - 如何截取 UIView 的屏幕截图并使用它具有模糊背景?