screen_protector
Safe Data Leakage via Application Background Screenshot and Prevent Screenshot for Android and iOS.
Feature
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.
class _PreventScreenshotPageState extends State<MyApp> {
@override
void initState() async {
await ScreenProtector.protectDataLeakageOn();
super.initState();
}
@override
void dispose() async {
await ScreenProtector.protectDataLeakageOff();
super.dispose();
}
}
iOS
- Prevent Screenshot
class _PreventScreenshotPageState extends State<MyApp> {
@override
void initState() async {
await ScreenProtector.preventScreenshotOn();
super.initState();
}
@override
void dispose() async {
await ScreenProtector.preventScreenshotOff();
super.dispose();
}
}
- Protect data leakage with color
class _ProtectDataLeakagePageState extends State<MyApp> {
@override
void initState() async {
await ScreenProtector.protectDataLeakageWithColor(Colors.white);
super.initState();
}
}
- Protect data leakage with image
class _ProtectDataLeakagePageState extends State<MyApp> {
@override
void initState() async {
await ScreenProtector.protectDataLeakageWithImage('LaunchImage');
super.initState();
}
}
- Protect data leakage with blur
class _ProtectDataLeakagePageState extends State<MyApp> {
@override
void initState() async {
await ScreenProtector.protectDataLeakageWithBlur();
super.initState();
}
}