Blankj/AndroidUtilCode

Toggling FLAG_SECURE in WindowManager to prevent taking screenshots

Open

#1,564 opened on 2021年11月16日

GitHub で見る
 (2 comments) (0 reactions) (1 assignee)Java (10,654 forks)batch import
help wanted

Repository metrics

Stars
 (33,679 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

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)

コントリビューターガイド