Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting live wallpaper programmatically

Tags:

Is it possible to set a live wallpaper using some lines of code. For example, i want to tell my users that a live wallpaper is available "click here to set it".

like image 706
prashant Avatar asked Jan 28 '11 18:01

prashant


People also ask

What file format is live wallpaper?

If you want to be able to use a video as a live wallpaper on Android devices, you have to make sure that the video is an . mp4 format.


2 Answers

There are now two ways to accomplish this as Jelly Bean provides a way to directly set the live wallpaper. This boilerplate code will choose the best method available.

Intent i = new Intent();  if(Build.VERSION.SDK_INT > 15){     i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);      String p = HypercaneWallpaperService.class.getPackage().getName();     String c = HypercaneWallpaperService.class.getCanonicalName();             i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(p, c)); } else{     i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER); } getActivity().startActivityForResult(i, 0); 
like image 58
Error 454 Avatar answered Oct 12 '22 05:10

Error 454


Alright, just so I stop getting downvotes for an outdated answer. Please see Error 454's answer below for a more robust solution which will send the user directly to the wallpaper preview screen on Jelly Bean and up devices.

========================================

Here's how to start the wallpaper chooser, from which the user can select your wallpaper. The toast is just a way to explain to the user what's going on.

Toast toast = Toast.makeText(this, "Choose '<WALLPAPER NAME>' from the list to start the Live Wallpaper.",Toast.LENGTH_LONG); toast.show();  Intent intent = new Intent(); intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER); startActivity(intent); 
like image 29
Josh Avatar answered Oct 12 '22 04:10

Josh