封装类、直接放到项目中去就可以用
记在主配置文件添加权限
<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);
}
}