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