Réaliser un launcher pour votre LiveWallpaper

Vous venez de terminer votre LiveWallpaper et vous vous dites qu’il serait sympa d’avoir un Lancher dans les applications. Certain vous dirons comme moi que c’est inutile, les gens doivent juste aller dans fond d’écran animée pour le sélectionner, d’autre moins geek vous dirons qu’ils ne savent même pas où c’est.

Le problème c’est que votre LiveWallpaper n’est pas une application mais un WallpaperService Android ne vous le placera pas dans Application. Pour cela il faut que vous réalisez un Application qui lance le choix des LiveWallpapers d’Android. C’est une application qui sert à rien je vous l’avoue mais qui est très utilise pour beaucoup de gens.

Comment réaliser ce Launcher.

1 – Le Manifest

<activity
	 android:icon="@drawable/icon"
	android:name="fr.ravenfeld.livewallpaper.Launcher"
	android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
	android:label="@string/app_name" android:screenOrientation="portrait">
	<intent-filter>
		<action android:name="android.intent.action.MAIN" />
		<category android:name="android.intent.category.LAUNCHER" />
	</intent-filter>
</activity>

2 – L’Activity

package fr.ravenfeld.livewallpaper;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import fr.ravenfeld.livewallpaper.R;

public class Launcher extends Activity {
	private final int REQUEST_CODE = 1;

		@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);

		Intent intent = new Intent();

		if (Build.VERSION.SDK_INT >= 16) {
			/**
			 * Open live wallpaper preview (API Level 16 or greater).
			 */
			intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
			String pkg = Service.class.getPackage().getName();
			String cls = Service.class.getCanonicalName();
			intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(pkg, cls));
		} else {
			/*
			 * Open live wallpaper picker (API Level 15 or lower).
			 * 
			 * Display a quick little message (toast) with instructions.
			 */
			intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
			Resources res = getResources();
			String hint = res.getString(R.string.select) + res.getString(R.string.lwp_name)
					+ res.getString(R.string.select_end);
			Toast toast = Toast.makeText(this, hint, Toast.LENGTH_LONG);
			toast.show();
		}

		startActivityForResult(intent, 0);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
		super.onActivityResult(requestCode, resultCode, intent);
		finish();
	}
}

Maintenant vous verrez votre icon dans les applications Android, les gens ne pourrons plus vous sortir l’excuse de « je ne le trouve même pas, dans mes applications ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *