Ho speso un sacco di tempo a cercare soluzioni diverse da StackOverflow, ma la maggior parte di loro sono inutili, perché stanno iniziando nuove istanze di attività. Ho bisogno di una scorciatoia che funzioni esattamente come quella nella lista delle app o quella installata automaticamente da Google Play (avvia attività o porta Attività già avviata).
@Override
public void onCreate(Bundle savedInstanceState) {
//Save the flag to SharedPreferences to prevent duplicated shortcuts
if (!settings.isShortcutAdded()) {
addShortcut();
settings.setShortcutAdded(true);
}
}
private void addShortcut() {
Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT;
shortcutIntent.addFlags(flags);
Intent addIntent = new Intent();
addIntent.putExtra("duplicate", false);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name));
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource
.fromContext(getApplicationContext(), R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
E non dimenticare di aggiornare il vostro manifesto:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
non credo che le API espongono tale funzionalità. Per impostazione predefinita, viene visualizzata un'icona di app nella finestra di dialogo a comparsa. –