screen_capture_event_plus 1.4.0 copy "screen_capture_event_plus: ^1.4.0" to clipboard
screen_capture_event_plus: ^1.4.0 copied to clipboard

Catch screen capture (Screenshot & Screen Record) event for Android and iOS

Screen Capture Event Plus #

A Flutter plugin to detect and handle screen capture events (Screenshots & Screen Recording) for both Android and iOS. It also supports securing screens by preventing screenshots on Android and applying screen blur overlays on iOS during recording.

Features #

  • Screenshot Detection: Listen for screenshot events on Android (including native Android 14+ ScreenCaptureCallback) and iOS.
  • Screen Recording Detection: Detect when the user starts or stops screen recording (Android & iOS).
  • Screenshot & Recording Protection: Secure app content with FLAG_SECURE on Android and dynamic blur overlay protection on iOS when screen recording is detected.
  • Multiple & Granular Listeners: Attach and detach callbacks (addScreenShotListener, removeScreenShotListener, etc.) easily.
  • Low Overhead & Safe Execution: Offloads heavy filesystem operations to background threads on Android and uses Swift Package Manager (SPM) on iOS.

Installation #

Run this command with Flutter:

flutter pub add screen_capture_event_plus

Or add it manually to your pubspec.yaml dependencies:

dependencies:
  screen_capture_event_plus: ^1.3.0

Platform Configuration #

iOS #

  • Supports Swift Package Manager (SPM) and requires a minimum iOS deployment target of 13.0.
  • Ensure your iOS project's deployment target is set to 13.0 or higher in Xcode.

Android #

  • Uses Activity.ScreenCaptureCallback on Android 14 (API 34)+ for permissionless screenshot detection.
  • Automatically requests READ_MEDIA_IMAGES on Android 13 (Tiramisu) and READ_EXTERNAL_STORAGE on older Android versions when required.
  • Ensure your Android minSdkVersion is at least 23 (Android 6.0).

Usage #

1. Initialize and Watch for Events #

Instantiate the listener, register your callbacks, and start watching for capture events in your stateful widget:

import 'package:screen_capture_event_plus/screen_capture_event_plus.dart';

class _MyScreenState extends State<MyScreen> {
  final ScreenCaptureEvent screenListener = ScreenCaptureEvent();
  String statusText = "Listening for events...";

  void _onRecord(bool recorded) {
    setState(() {
      statusText = recorded ? "Screen Recording Started" : "Screen Recording Stopped";
    });
  }

  void _onScreenshot(String filePath) {
    setState(() {
      statusText = "Screenshot detected! Path: $filePath";
    });
  }

  @override
  void initState() {
    super.initState();

    // 1. Listen for screen recording events (Android & iOS)
    screenListener.addScreenRecordListener(_onRecord);

    // 2. Listen for screenshot events
    screenListener.addScreenShotListener(_onScreenshot);

    // 3. Start observing events
    screenListener.watch();
  }

  @override
  void dispose() {
    // Optionally remove individual listeners or call dispose() to clean up native observers
    screenListener.removeScreenRecordListener(_onRecord);
    screenListener.removeScreenShotListener(_onScreenshot);
    screenListener.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text(statusText)),
    );
  }
}

2. Prevent Screenshots & Secure Screen Content #

To secure the screen content from screenshots and recording:

// Enable screenshot & recording protection (FLAG_SECURE on Android, blur overlay on iOS)
screenListener.preventScreenCapture(true);

// Disable screen protection
screenListener.preventScreenCapture(false);

Credits & Acknowledgments #

This package is an enhanced version based on the original screen_capture_event package created by Nizwar.

0
likes
160
points
53
downloads

Documentation

API reference

Publisher

verified publisherrizkyghofur.my.id

Weekly Downloads

Catch screen capture (Screenshot & Screen Record) event for Android and iOS

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on screen_capture_event_plus

Packages that implement screen_capture_event_plus