How to prevent screenshots in Android Studio
There are cases where you need to prevent screenshot capture during the Android app development process. For example, you may want to restrict the capture function to protect paid content or prevent personal information leaks.
This article shows you how to prevent screenshot capture in Android Studio using the getWindow().setFlags()
method.
1. Using the FLAG_SECURE
flag
Setting the FLAG_SECURE
flag prevents you from capturing or recording the contents of the app screen. The following code shows how to set the FLAG_SECURE
flag in the onCreate()
method of the Activity
class.
Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Prevent capture
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE);
}
Setting the FLAG_SECURE
flag has the following effects:
- Screenshot capture: If you take a screenshot, only a black screen will be captured.
- Screen recording: If you record the screen, the app screen will not be displayed in the recorded video.
2. Precautions
- The
FLAG_SECURE
flag does not completely block the capture function, but rather prevents the app screen from being displayed in the captured image or video. - To completely block the capture function, you need to use a different method.
- The
FLAG_SECURE
flag is applied to the entire app, so if you want to prevent capture only for a specific screen, you need to use a different method.
3. References
- Android Developers: FLAG_SECURE: https://support.google.com/webmasters/thread/176251023/outdated-content-removal-invalid-url?hl=en
4. Usage examples
- Apps that offer paid content
- Apps that handle personal information
- Game apps
5. Additional information
- The
FLAG_SECURE
flag can only be used on Android 4.0 and above. - The
FLAG_SECURE
flag can affect the permissions of the app, so use it with caution.
6. Conclusion
The FLAG_SECURE
flag is a simple way to prevent screenshot capture in Android apps. If you need to restrict the capture function depending on the characteristics of the app, try using this method.