0

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

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

2 回答 2

2

您无法在安装后自动创建快捷方式,因为您的代码在安装后不会自动运行。

于 2012-04-12T13:12:11.710 回答
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是所选应用程序的活动名称。

于 2016-07-20T05:53:37.660 回答