Search code examples
androidscreenshotvideo-capturecaptureandroid-screen

Declare Layout_Params.flag_secure in menifest


Android application screen can be prevent from taking screenshot via this code

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    super.onCreate(savedInstanceState);

}

But it is messy to write this code in every screen. Have any way to declare it in manifest application or any where.


Solution

  • Create a BaseActivity for your app and make all the other Activities extend it.

    public class BaseActivity extends AppCompatActivity {
       @Override
       protected void onCreate(@Nullable Bundle savedInstanceState) {
           getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
           super.onCreate(savedInstanceState);
    
       }
    }
    

    Then you create your activities like this:

    public class MyActivity extends BaseActivity {
           @Override
           protected void onCreate(@Nullable Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               // Your code
           }
    }