如何在安装后自动创建快捷方式?下面的代码不起作用!
private void createShortCut() {
Intent intent = new Intent(ACTION_INSTALL_SHORTCUT);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
intent.putExtra("duplicate", false);
Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);//icon
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() , MainActivity.class));
setResult(RESULT_OK, intent);
sendBroadcast(intent);
}
答案 0 :(得分:2)
安装后无法自动创建快捷方式,因为安装后代码不会自动运行。
答案 1 :(得分:0)
是的,无论是您的应用还是任何第三方应用或系统应用,都可以创建快捷方式。请遵循此示例代码。
try
{
for (int i = 0; i < packageNameArray.length; i++)
{
Intent shortcutIntent = Util.makeIntent(MyPreference.getAction(context), MyPreference.getCategory(context), packageNameArray[i], ActivityNameArray[i]);
Bitmap shortcutIcon2 = Util.confleteBitmap((UtilityClass.StringToBitMap(IconArray[i])), BitmapFactory.decodeResource(context.getResources(), R.drawable.shortcut_mark));
data.putExtra("android.intent.extra.shortcut.INTENT", shortcutIntent);
data.putExtra("android.intent.extra.shortcut.ICON", shortcutIcon2);
data.putExtra("android.intent.extra.shortcut.NAME", AppNameArray[i]);
//uninstalling shortcut to remove duplicacy
Intent intent = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
intent.putExtra("duplicate", false);
intent.putExtras(data);
context.sendBroadcast(intent);
}
}
catch (Exception e)
{
e.printStackTrace();
}
此处 packagenamearray 是您选择用于创建快捷方式的所有应用,如果您只创建了应用快捷方式,则会在此处传递应用包名称 activitynamearray 是所选应用的活动名称。