2

当我尝试以编程方式在 Android 应用程序的主屏幕中创建快捷方式图标时遇到问题。

我能够创建快捷方式图标,但之后,会弹出一条提示“已创建应用程序快捷方式”的警报,然后应用程序关闭。我不希望应用程序关闭,如果可能的话,我想摆脱创建快捷方式后弹出的警报。

我怎样才能做到这一点?

这是我当前的代码:

Intent targetIntent = new Intent (Intent.ACTION_MAIN);
targetIntent.setClassName (getApplicationContext(), "com.mainListActivity");
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutintent.addFlags(Intent.FLAG_FROM_BACKGROUND);

//repeat to create is forbidden
shortcutintent.putExtra("duplicate", false);

//set the name of shortCut
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"SecureLauncher");

//set icon
Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher_cloud);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

//set the application to lunch when you click the icon
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,targetIntent);
sendBroadcast(shortcutintent);
4

2 回答 2

0

我发现应用程序关闭它的原因在我的 manifest.xml 中

在我的清单中有这个之前:我删除了接收器部分:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<receiver
    android:name=".CreateShortcut"
    android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
    <intent-filter>
        <action android:name="com.android.launcher.action.INSTALL_SHORTCUT"/>
    </intent-filter>
</receiver>

所以我的清单中只有这个:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
于 2012-10-04T08:04:36.747 回答
0

创建快捷方式时使用此代码

Intent shortcutIntent = new Intent(getApplicationContext(), LoginScreen.class);     
shortcutIntent.setAction(Intent.ACTION_MAIN);

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS DOCTOR");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(),    R.drawable.aims));
addIntent.putExtra("duplicate", false);

addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);

你也应该在你的清单上使用它:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
于 2013-01-28T06:07:59.097 回答