android添加桌面快捷方式

封装类、直接放到项目中去就可以用

记在主配置文件添加权限

    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
package com.hhj.namespace;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Parcelable;

public class Shortcut {
	private Context mContext;

	public Shortcut(Context mContext) {
		this.mContext = mContext;
	}

	/*第一个传的是在桌面上应用的名字,第二个是在桌面上的图标*/
	public void createShortcut(String shortcutName, int icon) {
		Intent intent = new Intent(
				"com.android.launcher.action.INSTALL_SHORTCUT");
		Parcelable img = Intent.ShortcutIconResource
				.fromContext(mContext, icon);
		intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName);
		intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, img);
		/*FdffActivity.class启动应用的类名 的启动类*/
		Intent sendToAct = new Intent(mContext, FdffActivity.class);
		sendToAct.setAction(Intent.ACTION_MAIN);
		sendToAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		// sendToAct.putExtra("id", id);
		intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, sendToAct);
		mContext.sendBroadcast(intent);
	}

	// 删除快捷方式:
	public void deleteShortcut(String scName) {
		final String ACTION_UNINSTALL_SHORTCUT = "com.android.launcher.action.UNINSTALL_SHORTCUT";
		Intent intent = new Intent(ACTION_UNINSTALL_SHORTCUT);

		// scName是快捷方式的名字。
		intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, scName);

		// 第一个参数使用application里定义的包,第二个参数使用Activity里定义的名字,
		// 写完整的类名:包+类名。
		ComponentName comp = new ComponentName("synmin.app.shortcut","synmin.app.shortcut.ExeShortcutAct");
		intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent().setComponent(comp).setAction(Intent.ACTION_MAIN));
		mContext.sendBroadcast(intent);
	}
}

猜你喜欢

转载自329716228.iteye.com/blog/1612252