Here’s the properly formatted README.md file for your Flutter plugin. You can directly copy and paste this into your project:
# Screenshot Prevention Plugin
A Flutter plugin to prevent screenshots on specific screens for Android. This plugin allows you to disable and enable screenshots dynamically in your Flutter app.
> **Note**: Currently, this plugin only supports Android. iOS support is not available yet.
---
## Features
- **Disable Screenshots**: Prevent users from taking screenshots or recording the screen on specific screens.
- **Enable Screenshots**: Re-enable screenshots and screen recording when needed.
---
## Installation
Add the following dependency to your `pubspec.yaml` file:
```yaml
dependencies:
screenshot_prevention: ^0.0.1
```
Then, run:
flutter pub get
Usage
Import the Plugin
Add the import statement to your Dart file:
import 'package:screenshot_prevention/screenshot_prevention.dart';
Disable Screenshots
To disable screenshots on a specific screen, call the disableScreenshots method:
@override
void initState() {
super.initState();
ScreenshotPrevention.disableScreenshots(); // Disable screenshots
}
Enable Screenshots
To re-enable screenshots, call the enableScreenshots method:
@override
void dispose() {
ScreenshotPrevention.enableScreenshots(); // Re-enable screenshots
super.dispose();
}
Example
Here’s a complete example of how to use the plugin in a Flutter app:
import 'package:flutter/material.dart';
import 'package:screenshot_prevention/screenshot_prevention.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SecureScreen(),
);
}
}
class SecureScreen extends StatefulWidget {
@override
_SecureScreenState createState() => _SecureScreenState();
}
class _SecureScreenState extends State<SecureScreen> {
@override
void initState() {
super.initState();
ScreenshotPrevention.disableScreenshots(); // Disable screenshots
}
@override
void dispose() {
ScreenshotPrevention.enableScreenshots(); // Re-enable screenshots
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Secure Screen"),
),
body: Center(
child: Text("Screenshots are disabled on this screen."),
),
);
}
}
Android Implementation
This plugin uses the FLAG_SECURE flag in Android to prevent screenshots and screen recording. The flag is dynamically added or removed from the activity window.
How It Works
- When
disableScreenshotsis called, the plugin adds theFLAG_SECUREflag to the current activity window. - When
enableScreenshotsis called, the plugin removes theFLAG_SECUREflag.
Limitations
- Android Only: This plugin currently only supports Android. iOS support is not available yet.
- External Tools: The plugin cannot prevent screenshots taken by external tools or on rooted devices.
Contributing
Contributions are welcome! If you'd like to add iOS support or improve the plugin, feel free to open an issue or submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
---
### How to Use
1. Copy the above content.
2. Create a `README.md` file in the root of your plugin project.
3. Paste the content into the `README.md` file.
4. Save the file.
This `README.md` is ready for publishing on [pub.dev](https://pub.dev) or sharing with others. Let me know if you need further assistance! 🚀