screenshot_defender 1.0.0+1 copy "screenshot_defender: ^1.0.0+1" to clipboard
screenshot_defender: ^1.0.0+1 copied to clipboard

A Flutter plugin that prevents screenshots and screen recordings on iOS and Android.

screenshot_defender #

pub package Buy Me A Coffee

A Flutter plugin to block screenshots and screen recordings on Android and iOS.

Features #

  • Block screenshots and screen recordings while your app is in the foreground.
  • Unblock them when they are no longer needed.
  • Supports Android and iOS.

Platform behavior #

Platform Mechanism
Android Sets FLAG_SECURE on the activity window.
iOS Uses a secure UITextField layer to prevent the window contents from being captured.

Installation #

Add screenshot_defender to your pubspec.yaml:

dependencies:
  screenshot_defender: ^1.0.0

Then run:

flutter pub get

Usage #

Import the package:

import 'package:screenshot_defender/screenshot_defender.dart';

Create an instance and call block() / unblock():

final ScreenshotDefender screenshotBlocker = ScreenshotDefender();

// Block screenshots and screen recordings
await screenshotBlocker.block();

// Allow screenshots and screen recordings again
await screenshotBlocker.unblock();

Full example #

import 'package:flutter/material.dart';
import 'package:screenshot_defender/screenshot_defender.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final ScreenshotDefender screenshotBlocker = ScreenshotDefender();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Screenshot Blocker Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () async => screenshotBlocker.block(),
                child: const Text('Screenshot Defender'),
              ),
              ElevatedButton(
                onPressed: () async => screenshotBlocker.unblock(),
                child: const Text('UnBlock Screenshot'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

See the example folder for a complete working app.

Requirements #

  • Flutter >=3.44.0
  • Dart >=3.7.0
  • Android minSdk 21
  • iOS 15.0+

License #

This project is licensed under the MIT License - see the LICENSE file for details.

6
likes
0
points
12
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin that prevents screenshots and screen recordings on iOS and Android.

Homepage

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on screenshot_defender

Packages that implement screenshot_defender