A Flutter plugin for changing the Home Screen, Lock Screen (or both) Wallpaper on Android devices.
A Flutter plugin for changing the Home Screen, Lock Screen (or both) Wallpaper(s) on Android devices.
In the pubspec.yaml
of your flutter project, add the following dependency:
dependencies:
...
wallpaper_manager: "^1.0.10"
In your library add the following import:
import 'package:wallpaper_manager/wallpaper_manager.dart';
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);
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.';
}
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"
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);
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
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);
See the example
directory for a complete sample app using Wallpaper Manager.
For help getting started with Flutter, view the online documentation.
Please see the Changelog page to know what's recently changed.
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.