wallpaper_manager 1.0.0 wallpaper_manager: ^1.0.0 copied to clipboard
A Flutter plugin for changing the Home Screen, Lock Screen (or both) Wallpaper on Android devices.
wallpaper_manager #
A Flutter plugin for changing the Home Screen, Lock Screen (or both) Wallpaper on Android devices.
Usage #
Installation #
In the pubspec.yaml
of your flutter project, add the following dependency:
dependencies:
...
wallpaper_manager: "^1.0.0"
In your library add the following import:
import 'package:wallpaper_manager/wallpaper_manager.dart';
Example #
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.setWallpaperFromPath(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.setWallpaperFromPath(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.setWallpaperFromPath(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);
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
- Xiaomi/MIUI does not support changing Lock Screen Wallpapers directly from the Android API . You might want to look at creating a Lock Screen Launcher app instead.
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.