根据 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/