Wallpaper APIs
Overview
The Smart Launcher Wallpaper API is an Android library that lets third‑party apps notify Smart Launcher about the wallpaper a user has selected. It handles temporary file storage, permission management, and metadata sharing so you can integrate without additional manifest setup or custom providers.
Benefits for Developers
Advanced visual effect – Smart Launcher will be able to apply dynamic blur effects and other enhancements to the wallpapers you supply, ensuring the launcher showcases your content at its best.


Built‑in attribution – When users share their setups, Smart Launcher preserves your metadata (author, source, link) so you receive proper credit. This attribution flows through to social posts, helping your work reach new audiences.


Quick Implementation Guide
Add the dependency
dependencies {
implementation("net.smartlauncher:wallpaper-api:0.0.5")
}Go to the code that you use to apply your wallpapers
First apply the wallpaper with WallpaperManager, then notify Smart Launcher with SmartLauncherWallpaperApi.updateWallpaper. This requires Smart Launcher 6.5.54 or later.
// Both calls are usually made from a background thread, for example from a coroutine.
yourCoroutineScope.launch(Dispatchers.IO) {
WallpaperManager.getInstance(this@MainActivity).setBitmap(bitmap)
// You can already tell the user that the new wallpaper has been applied.
val result = SmartLauncherWallpaperApi.updateWallpaper(
context = this@MainActivity,
bitmap = bitmap, // also Uri is supported
which = WallpaperManager.FLAG_SYSTEM,
metadata = SmartLauncherWallpaperApi.Metadata(
author = "Jane Doe",
link = "https://example.com/wallpaper/42",
source = "Example App"
)
)
// Useful for debugging
Log.d(TAG, "SmartLauncherWallpaperAPI returned $result")
}You are done!
Recommendations and common errors
✅ Run WallpaperManager.setBitmap(...) and SmartLauncherWallpaperApi.updateWallpaper(...) from a background thread, for example from a coroutine. They do not need to run on the same thread or the same coroutine scope, but updateWallpaper(...) must happen after the wallpaper has already been applied.
✅ After WallpaperManager.setBitmap(...) returns, you can already tell the user that the new wallpaper has been applied.
✅ You do not need to wait for SmartLauncherWallpaperApi.updateWallpaper(...) to return. You can launch it separately on another background thread if that fits your app better.
❌ Do not call SmartLauncherWallpaperApi.updateWallpaper before WallpaperManager.getInstance(this).setBitmap(bitmap). Calling it first will not have any effect on the current wallpaper.
❌ If you are applying your wallpaper only to the lock screen, do not call updateWallpaper. Otherwise, your information will again be associated with the wrong wallpaper.
How to test it
Verify you are running Smart Launcher 6.5.54 or higher
Launch your code, ensure
SmartLauncherWallpaperApi.updateWallpaperreturnsSuccessFrom Smart Launcher, open preferences, then select Show your home screen.
✅ If you see your current setup, the integration is working! Now, if you populated the metadata field, you should see them as part of the body text when you press the Share button.
🚨 If you get an error after selecting Show your home screen, something is wrong. Contact us for assistance.
Library release notes
0.0.5
Breaking change: SmartLauncherWallpaperApi.updateWallpaper replaces the previous saveWallpaper method.
The new flow is to apply the wallpaper first with WallpaperManager.setBitmap(...), then call updateWallpaper(...) afterwards. This unlocks the caller earlier because you do not need to postpone the wallpaper application until you receive the return value.
0.0.4
The library now uses WebP under the hood for improved performance
0.0.3
Initial public release
Last updated
Was this helpful?
