
Device Screenshot
💡 Overview
A Flutter plugin that can helps you to take screenshot your overall device using media projection and foreground service.
The plugin currently supports Android only and doesn't support IOS because the feature of media projection is not available there
💻 Usage
First, add device_screenshot
as a dependency in your pubspec.yaml file.
dependencies:
flutter:
sdk: flutter
device_screenshot: ^update_version
Don't forget to flutter pub get
.
🔧 Setup
Set the minimum SDK version to 21
or higher in your android/app/build.gradle
file:
android {
defaultConfig {
...
minSdkVersion 21 // Set this to 21 or higher
...
}
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="...">
...
<application
...
...>
<activity
...
...>
<!--Add this-->
<service
android:name="com.flutter.device_screenshot.src.MediaProjectionService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="mediaProjection"
android:permission="TODO"
android:stopWithTask="false"
/>
<!--end-->
...
...
</application>
</manifest>
Import the package:
import 'package:device_screenshot/device_screenshot.dart';
Use the singleton instance of DeviceScreenshot
to access all the available methods, for example:
DeviceScreenshot.instance.checkMediaProjectionService()
📱 To take screenshot
At first you need to run foreground service and for this
DeviceScreenshot.instance.requestMediaProjection()
Now you are ready to take your Device Screenshot.
Uri? uri = await DeviceScreenshot.instance.takeScreenshot()