Подтвердить что ты не робот

Как добавить ярлык приложения на главный экран

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

  • Требуется разрешение в манифесте.

    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    
  • Создайте намерение действия, которое нужно вызвать. Пример (из cgeek):

    Intent shortcutIntent = new Intent();
    shortcutIntent.setClassName("com.example.androidapp", "SampleIntent");
    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, "Shortcut Name");
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon));
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
    context.sendBroadcast(addIntent);
    

Мои вопросы: Где этот код должен идти, чтобы добавить ярлык после установки .apk? Я пробовал этот код в активности запуска, он создает прерывистую (другую историю) ярлык при каждом запуске приложения.

4b9b3361

Ответ 1

Насколько я знаю, это необязательная функция приложения Market, а не самих приложений. По дизайну приложение не получает трансляцию о том, что она устанавливается. Если эти коды работают, то как только вы сможете выполнить это, это первый раз, когда пользователь запускает приложение. Тем не менее:

У. Не. Автоматически. Создайте. Приложение. Ярлыки.

Ever.

Не узурпируйте пользовательский интерфейс пользователя.

Ответ 2

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

Однако, если вы укажете кнопку в своем приложении, вы поместите ее в обработчик OnClick. Затем он будет добавлять ярлык, когда пользователь выбирает опцию "добавить ярлык".

Ответ 3

Это возможно, просто добавьте приведенный ниже код к вашему основному виду деятельности в методе oncreate

        Intent HomeScreenShortCut= new Intent(getApplicationContext(),
                MainActivity.class);

        HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
        HomeScreenShortCut.putExtra("duplicate", false);
        //shortcutIntent is added with addIntent
        Intent addIntent = new Intent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AppName");
        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);

Добавить добавление этого разрешения в ваш манифест

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

Ответ 4

Я использовал этот код для создания 3 ярлыков на главной странице:

Intent HomeScreenShortCut= new Intent(getApplicationContext(),
            MainActivity.class);

HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
//shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AppName");
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);

Ответ 5

Есть недостатки в том же методе выше. Возьмите ярлык на главный экран.