我正在尝试为我的应用添加/删除快捷方式。 “添加”代码非常完美。但是只有在我创建它的同一个app实例上运行它时,删除才有效。如果我创建了快捷方式,那么重新启动应用程序并最终执行它失败的“删除”代码(不要删除图标)。
这是我的代码:
public static void add(Class<? extends Activity> activity, String name, Bitmap icon) {
Context context = ...;
icon = scaleIcon(context, icon);
Intent shortcutIntent = new Intent(context, activity);
shortcutIntent.setAction(Intent.ACTION_MAIN);
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT;
shortcutIntent.setFlags(flags);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
addIntent.setAction(SHORTCUT_INSTALL);
context.sendBroadcast(addIntent);
}
public static void remove(Class<? extends Activity> activity, String name) {
Context context = ...;
Intent shortcutIntent = new Intent(context, activity);
shortcutIntent.setAction(Intent.ACTION_MAIN);
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT;
shortcutIntent.setFlags(flags);
Intent removeIntent = new Intent(SHORTCUT_UNINSTALL);
removeIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
removeIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
context.sendBroadcast(removeIntent);
}
顺便说一句,我找不到关于快捷方式的android文档。
谢谢你的帮助。
答案 0 :(得分:0)
您可能需要添加此权限:
<uses-permission
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />