我想创建快捷方式

时间:2014-01-01 01:19:47

标签: android

我在打开应用程序时创建快捷方式,但问题是如果我打开应用程序20次然后创建20个快捷方式,则创建一个始终打开应用程序的快捷方式

我需要只创建第一个打开的快捷方式

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ShortcutIcon();

   }




private void ShortcutIcon(){

    Intent shortcutIntent = new Intent(getApplicationContext(), Main.class);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    Intent addIntent = new Intent();
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Whatsapp Imagenes");
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icono));
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    getApplicationContext().sendBroadcast(addIntent);
}

3 个答案:

答案 0 :(得分:9)

在JB之前的Android版本中,你可以试试这个:

addIntent.putExtra("duplicate", false);

否则,您只需卸载并重新安装快捷方式:

intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(intent);

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

更多信息here

答案 1 :(得分:0)

您可以在首选项管理器中存储标记,以标记您是否已创建快捷方式。这可以通过

来实现
SharedPreferences prefs = mContext.getSharedPreferences("shortcut_created", 0);
SharedPreferences.Editor editor = prefs.edit();
if (prefs.getBoolean("shortcut_created", false)) 
{ 
    // if shortcut has not been created, create your shortcut here
    ...
    // once shortcut is created, mark the preference so the next time it does not 
    // create the shortcut again 

    editor.putBoolean("shortcut_created", true);
} 

答案 2 :(得分:0)

是。您可以使用SharePreferences检查应用程序是否首次启动。更多信息请查看:

http://pulse7.net/android/