screen_protector
Safe Data Leakage via Application Background Screenshot and Prevent Screenshot for Android and iOS.
Important (Breaking Change)
Versions 1.4.4 through 1.4.13 may cause crashes on some devices. Please use version 1.4.3 or earlier, or upgrade to version 1.5.1 or later.
Feature
Import
import 'package:screen_protector/screen_protector.dart';
iOS
Protect Data Leakage Background Screenshot
- Protect data leakage with image
await ScreenProtector.protectDataLeakageWithImage('LaunchImage');
- Protect data leakage with color ON
await ScreenProtector.protectDataLeakageWithColor(Colors.white);
- Protect data leakage with color OFF
await ScreenProtector.protectDataLeakageWithColorOff();
- Protect data leakage with blur ON
await ScreenProtector.protectDataLeakageWithBlur();
- Protect data leakage with blur OFF
await ScreenProtector.protectDataLeakageWithBlurOff();
Prevent Screenshot
- ON
await ScreenProtector.preventScreenshotOn();
- OFF
await ScreenProtector.preventScreenshotOff();
Check Screen Recording
final isRecording = await ScreenProtector.isRecording();
Android
Protect Data Leakage Background Screenshot and Prevent Screenshot
- ON
await ScreenProtector.protectDataLeakageOn();
or
await ScreenProtector.preventScreenshotOn();
- OFF
await ScreenProtector.protectDataLeakageOff();
or
await ScreenProtector.preventScreenshotOff();
Protect Data Leakage for Android 12+ (Optional)
https://github.com/prongbang/screen-protector
import com.prongbang.screenprotect.AndroidScreenProtector
class MainActivity : FlutterFragmentActivity() {
private val screenProtector by lazy { AndroidScreenProtector.newInstance(this) }
// For Android 12+
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
screenProtector.process(hasFocus.not())
}
}
Usage
Android
- Protect Data Leakage Background Screenshot and Prevent Screenshot.
import 'package:screen_protector/screen_protector.dart';
class _PreventScreenshotPageState extends State<MyApp> {
void _preventScreenshotOn() async => await ScreenProtector.protectDataLeakageOn();
void _protectDataLeakageOff() async => await ScreenProtector.protectDataLeakageOff();
@override
void initState() {
_preventScreenshotOn();
super.initState();
}
@override
void dispose() {
_protectDataLeakageOff();
super.dispose();
}
}
iOS
- Prevent Screenshot
import 'package:screen_protector/screen_protector.dart';
class _PreventScreenshotPageState extends State<MyApp> {
void _preventScreenshotOn() async => await ScreenProtector.preventScreenshotOn();
void _preventScreenshotOff() async => await ScreenProtector.preventScreenshotOff();
@override
void initState() {
_preventScreenshotOn();
super.initState();
}
@override
void dispose() {
_preventScreenshotOff();
super.dispose();
}
}
- Protect data leakage with color
import 'package:screen_protector/screen_protector.dart';
class _ProtectDataLeakagePageState extends State<MyApp> {
void _protectDataLeakageWithColor() async => await ScreenProtector.protectDataLeakageWithColor(Colors.white);
@override
void initState() {
_protectDataLeakageWithColor();
super.initState();
}
}
- Protect data leakage with image

import 'package:screen_protector/screen_protector.dart';
class _ProtectDataLeakagePageState extends State<MyApp> {
void _protectDataLeakageWithImage() async => await ScreenProtector.protectDataLeakageWithImage('LaunchImage');
@override
void initState() {
_protectDataLeakageWithImage();
super.initState();
}
}
- Protect data leakage with blur
import 'package:screen_protector/screen_protector.dart';
class _ProtectDataLeakagePageState extends State<MyApp> {
void _protectDataLeakageWithBlur() async => await ScreenProtector.protectDataLeakageWithBlur();
@override
void initState() {
_protectDataLeakageWithBlur();
super.initState();
}
}
💖 Support the Project
If you find this package helpful, please consider supporting it:
