Flutter: disable screenshot capture for app

  1. Locate your MainActivity class inside the embedded android project dir in your Flutter Project
  2. Add the following import to your main activity class: import android.view.WindowManager.LayoutParams;
  3. Add the following line to your MainActivity's onCreate method: getWindow().addFlags(LayoutParams.FLAG_SECURE);

For Flutter2 project

Method 1 : using package flutter_windowmanager

Method 2 :

in Android with kotlin

Step 1 Open the file "mainActivity.kt" using the path

android\app\src\main\kotlin\com\example\auth_email\MainActivity.kt

Step 2 Import Library

import android.view.WindowManager.LayoutParams

import io.flutter.embedding.android.FlutterActivity

import io.flutter.embedding.engine.FlutterEngine

Step 3 In main activity class

class MainActivity: FlutterActivity() {
  override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
    window.addFlags(LayoutParams.FLAG_SECURE)
    super.configureFlutterEngine(flutterEngine)
  }
}

In iOS Swift : AppDelegate.swift file

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
  
  // <Add>
  override func applicationWillResignActive(
    _ application: UIApplication
  ) {
    self.window.isHidden = true;
  }
  override func applicationDidBecomeActive(
    _ application: UIApplication
  ) {
    self.window.isHidden = false;
  }
  

}