作为每个Android文档,我们可以在类似的活动中禁用屏幕/视频捕获
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
但是我如何在片段中实现相同的目标。例如,假设我有一个包含五个片段的活动,但我想仅在五个片段中的一个片段中禁用屏幕/视频捕获,而不是在其他片段中禁用。
这样做是
getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
片段内部禁用所有片段中的屏幕/视频捕获。
我应该根据片段编写用于启用/禁用活动中的屏幕捕获的逻辑。
FLAG_SECURE
是一个窗口级别的能力;您不能将其仅应用于窗口的一部分(例如,活动中的一个片段)。
如果通过“具有五个片段的活动”,则表示“同时在屏幕上有五个片段的活动”,那么AFAIK就无法实现您想要的效果。
如果通过“一个有五个片段的活动”,你的意思是“一个有五个片段的活动,其中一次只能看到一个片段,例如ViewPager
中的页面”,那么当你的活动进入时,你需要切换FLAG_SECURE
并离开屏幕。
如果可能,在单个活动中使用您的片段并设置标志。由于片段只是一种在活动中引用和更改视图的方式,因此android没有安全模型。