Можно ли отключить захват экрана из фрагмента? Я знаю, что ниже работает для класса активностиКак отключить захват экрана в фрагменте Android?
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
Но что, если у меня есть фрагмент, который показывает, на вершине деятельности. Могу ли я как-то отключить захват экрана? Я попытался установить FLAG_SECURE в методе onCreate() или onCreateView() этого фрагмента, но он не работает. Я все еще могу снять снимок экрана. Только когда я добавляю флаг в родительскую активность, я могу отключить его.
На соответствующую записку, скажем, у меня есть метод в ParentActivity.java (который расширяет активность)
public void disableScreenCapture() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
И в моем ChildFragment.java (который проходит фрагмент)
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. Поверхность SurfaceView представляет собой отдельный слой и может обрабатываться независимо, но интерфейс просмотра представлен композицией приложения и передается системному компоновщику как единое целое. – fadden