Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запретить захват экрана в приложениях для Android

Автор вопроса: burgwindeckОтветов: 2

Мне было интересно, есть ли способ определить с помощью какого-либо метода обратного вызова "onXXXXX" или полученной трансляции, если какой-либо другой процесс собирается сделать снимок экрана моего приложения. Например, если инструменты SDK или какое-либо другое приложение для захвата экрана выполняет "захват экрана", я хотел бы получить уведомление, а затем решить, следует ли разрешить или запретить захват экрана.

Если это невозможно, есть ли способ заблокировать дисплей, чтобы никакой другой процесс не мог захватить мой экран?

androidscreenshot

Ответы

Ответ 1 · рейтинг 5 · jakebasile

не поддерживается метод для создания снимка экрана другого приложения на Андроид. Единственные способы включают либо рутирование, либо использование SDK, которые практически не дают вам шанса заблокировать или получить уведомление об этом. Если другое приложение делает снимок экрана, оно по умолчанию использует неподдерживаемые методы и, вероятно, может делать то, что ему заблагорассудится.

Я хотел бы уточнить, что я не подразумеваю, что вы не должны использовать какие-либо доступные методы для защиты вашего приложения. Я просто сообщаю вам, что это, вероятно, невозможно сделать без использования неподдерживаемых методов, и что даже если вы их используете, вы не можете быть на 100% защищены от скриншотов.

Ответ 2 · рейтинг 25 · user330844

Это сработало для меня на Samsung Tab 2 7 ".

Используя следующий подход, просто добавьте FLAG_SECURE к Оконные флаги

public class FlagSecureTestActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    setContentView(R.layout.main);
  }
}

с оговоркой, что вам, возможно, придется изменить

LayoutParams

to

WindowManager.LayoutParams

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы