【发布时间】:2015-12-10 23:03:20
【问题描述】:
是否可以禁用片段的屏幕截图? 我知道以下适用于 Activity 类
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
但是,如果我有一个显示在活动之上的片段怎么办。我可以以某种方式禁用屏幕捕获吗?我尝试在片段的 onCreate() 或 onCreateView() 方法中设置 FLAG_SECURE,但它不起作用。我仍然可以截屏。只有当我在父活动中添加标志时,我才能禁用它。
在相关的说明中,比如说,我在 ParentActivity.java 中有一个方法(它扩展了 Activity)
public void disableScreenCapture() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
在我的 ChildFragment.java(它扩展了 Fragment)中
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ParentActivity parentActivity = (ParentActivity)getActivity();
parentActivity.disableScreenCapture(); //doesn't work
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ParentActivity parentActivity = (ParentActivity)getActivity();
parentActivity.disableScreenCapture(); //doesn't work either
}
有什么想法吗?
提前致谢
【问题讨论】:
-
我的期望是“安全”标志适用于整个 View UI 层。 SurfaceView 的 Surface 是一个单独的层,可以独立处理,但 View UI 由应用程序合成,并作为单个实体交给系统合成器。
标签: android android-fragments screenshot layoutparams