Blankj/AndroidUtilCode

Toggling FLAG_SECURE in WindowManager to prevent taking screenshots

Aberta

#1.564 aberto em 16 de nov. de 2021

 (2 comentários) (0 reação) (1 responsável)Java (10.620 forks)batch import
help wanted

Métricas do repositório

Stars
 (33.636 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Describe the feature

Toggle FLAG_SECURE to prevent screenshot form activity/class/base/app.

The FLAG_SECURE "flag" in WindowManager prevents taking a screenshot from the app's screen in Android versions above 7, and scrambles the snapped shot final image in Android versions lower than 7.

https://developer.android.com/reference/android/view/WindowManager.LayoutParams#FLAG_SECURE

Reference

You can achieve it with only one line of code (Java): getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); Kotlin: window.setFlags( WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE)

And to disable it (Java): getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); Kotlin: window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)

Guia do colaborador