禁用片段中的屏幕捕获

问题描述 投票:1回答:2

作为每个Android文档,我们可以在类似的活动中禁用屏幕/视频捕获

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

但是我如何在片段中实现相同的目标。例如,假设我有一个包含五个片段的活动,但我想仅在五个片段中的一个片段中禁用屏幕/视频捕获,而不是在其他片段中禁用。

这样做是

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

片段内部禁用所有片段中的屏幕/视频捕获。

我应该根据片段编写用于启用/禁用活动中的屏幕捕获的逻辑。

android fragment screenshot
2个回答
2
投票

FLAG_SECURE是一个窗口级别的能力;您不能将其仅应用于窗口的一部分(例如,活动中的一个片段)。

如果通过“具有五个片段的活动”,则表示“同时在屏幕上有五个片段的活动”,那么AFAIK就无法实现您想要的效果。

如果通过“一个有五个片段的活动”,你的意思是“一个有五个片段的活动,其中一次只能看到一个片段,例如ViewPager中的页面”,那么当你的活动进入时,你需要切换FLAG_SECURE并离开屏幕。


0
投票

如果可能,在单个活动中使用您的片段并设置标志。由于片段只是一种在活动中引用和更改视图的方式,因此android没有安全模型。

© www.soinside.com 2019 - 2024. All rights reserved.