在主屏幕上创建快捷方式图标后,Android App将关闭

时间:2012-10-04 05:23:15

标签: android icons shortcut

当我尝试以编程方式在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);

2 个答案:

答案 0 :(得分: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"/>

答案 1 :(得分: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" />