如何在安装后自动创建快捷方式?

时间:2012-04-12 11:55:10

标签: android shortcut

如何在安装后自动创建快捷方式?下面的代码不起作用!

 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);
 }

2 个答案:

答案 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 是所选应用的活动名称