wallcraft_manager 1.0.1
wallcraft_manager: ^1.0.1 copied to clipboard
A Flutter plugin for setting wallpapers and saving images to gallery on Android and iOS. Supports different wallpaper types and modern platform APIs.
Wallcraft Manager #
A Flutter plugin for setting wallpapers and saving images to gallery on Android and iOS.
Features #
- ✅ Set wallpapers on Android (home screen, lock screen, or both)
- ✅ Save images to device gallery on both platforms
- ✅ Support for both file paths and image bytes
- ✅ Proper error handling and permission management
- ✅ Modern Android API support (MediaStore for Android 10+)
- ✅ iOS Photos framework integration
Platform Support #
Feature | Android | iOS |
---|---|---|
Set Wallpaper | ✅ | ❌* |
Save to Gallery | ✅ | ✅ |
*iOS doesn't support programmatic wallpaper setting due to platform limitations. The plugin will save the image to Photos and show instructions to the user.
Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
wallcraft_manager: ^1.0.0
Setup #
Android #
Add the following permissions to your android/app/src/main/AndroidManifest.xml
:
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
iOS #
Add the following to your ios/Runner/Info.plist
:
<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app needs access to save images to your photo library.</string>
Usage #
import 'package:wallcraft_manager/wallcraft_manager.dart';
import 'package:wallcraft_manager/enum/wallpaper_setter_type.dart';
final wallcraftManager = WallcraftManager();
// Check if wallpaper setting is supported
bool isSupported = await wallcraftManager.isSupported();
// Set wallpaper from file
bool success = await wallcraftManager.setWallpaperFromFile(
filePath: '/path/to/image.jpg',
type: WallpaperSetterType.home,
);
// Set wallpaper from bytes
bool success = await wallcraftManager.setWallpaperFromBytes(
bytes: imageBytes,
type: WallpaperSetterType.both,
);
// Save image to gallery
bool saved = await wallcraftManager.saveImageToGalleryFromFile(
filePath: '/path/to/image.jpg',
);
Error Handling #
The plugin throws PlatformException
with the following error codes:
INVALID_ARGUMENT
: Missing or invalid parametersFILE_NOT_FOUND
: Image file doesn't existPERMISSION_DENIED
: Missing required permissionsINVALID_IMAGE
: Invalid image format or corrupted dataSAVE_ERROR
: Failed to save image to gallerySET_WALLPAPER_ERROR
: Failed to set wallpaper
try {
bool success = await wallcraftManager.setWallpaperFromFile(
filePath: imagePath,
type: WallpaperSetterType.home,
);
} on PlatformException catch (e) {
print('Error: ${e.code} - ${e.message}');
}
Contributing #
Contributions are welcome! Please read our contributing guidelines and submit pull requests.
License #
MIT License - see LICENSE file for details.