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

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

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

Спасибо!


person Diego    schedule 31.01.2013    source источник


Ответы (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>
person Diego    schedule 02.02.2013