Is it possible somehow to set Live Wallpaper programmatically using my Application?
I am working on an Application that her purpose is to choose some of the Installed Live Wallpapers on the device and to set it as a Live Wallpaper. This action need to be completed via my Application.
As I was researching I found some answers that this can be done with rooting the Android Device?
Can some one help me out how to do that exactly?
Android OS prior to Jelly Bean does not allow you to programatically set a live wallpaper. For now Jelly Bean supports changing the Live Wallpaper programtically without user interaction
Sorry to break it to the nay sayers but it is possible to set a live wallpaper programmatically WITHOUT user interaction. It requires:
<uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
NOTE: For item #3, I used my own live wallpaper, MyWallpaperService class
This can only be done if your app is system-privileged and has this permission in the manifest:
<uses-permission android:name="android.permission.SET_WALLPAPER_COMPONENT" />
Now, using reflection, you can call the hidden methods of WallpaperManager to manually set the live wallpaper:
WallpaperManager manager = WallpaperManager.getInstance(context);
Method method = WallpaperManager.class.getMethod("getIWallpaperManager", null);
Object objIWallpaperManager = method.invoke(manager, null);
Class[] param = new Class[1];
param[0] = ComponentName.class;
method = objIWallpaperManager.getClass().getMethod("setWallpaperComponent", param);
//get the intent of the desired wallpaper service. Note: I created my own
//custom wallpaper service. You'll need a class reference and package
//of the desired live wallpaper
Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE);
intent.setClassName(context.getPackageName(), MyWallpaperService.class.getName());
//set the live wallpaper (throws security exception if you're not system-privileged app)
method.invoke(objIWallpaperManager, intent.getComponent());
Refer to the source code:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With