Android: получите больше значков (ярлыков) для действий в моем пакете на рабочем столе

Я знаю, что могу создать виджет, который можно разместить на домашнем экране, но есть вероятность, что когда пользователь установит приложение, только моя стандартная иконка запуска запустит определенную активность. Но когда пользователь выберет это (нажав кнопку, например, в моем приложении), на начальном экране устройства будет создан другой значок, который напрямую связан с другим действием? Таким образом, нажав этот значок на главном экране, откроется еще одно действие в моем пакете?

У кого-нибудь есть фрагмент, если это возможно?

Спасибо!

1 ответ

Решение

Благодаря этому блогу: http://viralpatel.net/blogs/android-install-uninstall-shortcut-example/

В Манифест добавьте необходимые разрешения:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

добавить к вашей активности в манифесте, где ярлык ссылается на:

   android:exported="true"

Затем используйте следующие методы для установки / удаления ярлыка:

 private void addShortcut() {
        //Adding shortcut for MainActivity 
        //on Home screen
        Intent shortcutIntent = new Intent(getApplicationContext(),
                MainActivity.class);

        shortcutIntent.setAction(Intent.ACTION_MAIN);

        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");
        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);
    }


private void removeShortcut() {

        //Deleting shortcut for MainActivity 
        //on Home screen
        Intent shortcutIntent = new Intent(getApplicationContext(),
                MainActivity.class);
        shortcutIntent.setAction(Intent.ACTION_MAIN);

        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");

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

Чтобы добавить действие в руководство по ярлыкам, просто добавьте фильтр намерений к своей активности в манифесте:

<intent-filter>
    <action android:name="android.intent.action.CREATE_SHORTCUT" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Другие вопросы по тегам