wallpaper_manager

Creator: coderz1093

Last updated:

Add to Cart

Description:

wallpaper manager

wallpaper_manager #

A Flutter plugin for changing the Home Screen, Lock Screen (or both) Wallpaper(s) on Android devices.

Usage #
Installation #
In the pubspec.yaml of your flutter project, add the following dependency:
dependencies:
...
wallpaper_manager: "^1.0.10"
copied to clipboard
In your library add the following import:
import 'package:wallpaper_manager/wallpaper_manager.dart';
copied to clipboard
Example #
Basic Usage
Since this is not a Widget, you have to create WallpaperManager constructors from inside an async function, which is a Future that returns a String output specifying success/failure.
String path = "/path/to/file/on/disk";
int location = WallpaperManager.HOME_SCREEN; // or location = WallpaperManager.LOCK_SCREEN;
final String result = await WallpaperManager.setWallpaperFromFile(path, location);
copied to clipboard
Basic Usage with error handling
You might want to wrap it in a try/catch since platform messages (plug-ins like these) may fail
String path = "/path/to/file/on/disk";
int location = WallpaperManager.HOME_SCREEN; // or location = WallpaperManager.LOCK_SCREEN;
String result;
try {
result = await WallpaperManager.setWallpaperFromFile(path, location);
} on PlatformException {
result = 'Failed to get wallpaper.';
}
copied to clipboard
Loading from a URL (with CacheManager, the image is saved to app files as well)
If you're loading a Wallpaper from a URL, you should save it to the disk first, then use the path of the saved image file.
Add flutter_cache_manager or any other dependency you'd like:
dependencies:
...
flutter_cache_manager: "^1.1.3"
copied to clipboard
And in dart code
String url = "";
int location = WallpaperManager.HOME_SCREEN; // or location = WallpaperManager.LOCK_SCREEN;
String result;
var file = await DefaultCacheManager().getSingleFile(url);
final String result = await WallpaperManager.setWallpaperFromFile(file.path, location);
copied to clipboard
Loading from a Flutter asset
If you're loading a Wallpaper from an asset, you need to make sure it is indexed in the pubspec.yaml file first
dependencies:
...
flutter:
...
assets:
- assets/tmp1.jpeg
copied to clipboard
And in dart code
String assetPath = "assets/tmp1.jpg";
int location = WallpaperManager.HOME_SCREEN; // or location = WallpaperManager.LOCK_SCREEN;
String result;
final String result = await WallpaperManager.setWallpaperFromAsset(assetPath, location);
copied to clipboard
Getting started #
With Wallpaper Manager #
See the example directory for a complete sample app using Wallpaper Manager.
With Flutter #
For help getting started with Flutter, view the online documentation.
Notes #

iOS does not support changing Wallpapers from third-party apps (Source)
Xiaomi/MIUI does not support changing Lock Screen Wallpapers directly from the Android API (Source). You might want to look at creating a Lock Screen Launcher app instead.

Known Issues #

Due to a change in Flutter's Embedding Engine, you might face an issue while building your project. To work around this, you can upgrade to the latest version of the plugin (which directly handles both v1 & v2 Embedding from v.1.0.6) or change the Flutter Embedding Engine version in your project.

Todos #

❌ Write tests
✅ Add rect values for optionally cropping the image
❌ Add variable for re-using Wallpaper from phone's settings
❌ Write more tests

Changelog #
Please see the Changelog page to know what's recently changed.
Contributions #
Feel free to contribute to this project.
If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.