Как убрать значок в ярлыке приложения? - PullRequest
0 голосов
/ 07 июня 2018

enter image description here Как убрать значок в ярлыке приложения в Android?Когда я создаю ярлык приложения программно, вместе со значком, указанным для ярлыка, значок приложения появляется в правом нижнем углу значка.Я не хочу этот значок.

Вот код, который я использовал

    public static void addShortcutToHomeScreen(Context context)
{
    if (ShortcutManagerCompat.isRequestPinShortcutSupported(context))
    {
        ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, "#1")
                .setIntent(new Intent(context, Splash.class).setAction(Intent.ACTION_MAIN)) // !!! intent's action must be set on oreo
                .setShortLabel("Test")
                .setIcon(IconCompat.createWithResource(context, R.drawable.logo))
                .build();
        ShortcutManagerCompat.requestPinShortcut(context, shortcutInfo, null);
    }
    else
    {
        // Shortcut is not supported by your launcher
    }
}

Ответы [ 6 ]

0 голосов
/ 05 апреля 2019
private void createNotificationChannel() {
    // Create the NotificationChannel, but only on API 26+ because
    // the NotificationChannel class is new and not in the support library
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        CharSequence name = getString(R.string.channel_name);
        String description = getString(R.string.channel_description);
        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
        channel.setDescription(description);
         channel.setShowBadge(false)

        NotificationManager notificationManager = getSystemService(NotificationManager.class);
        notificationManager.createNotificationChannel(channel);
    }
}
0 голосов
/ 05 апреля 2019

такой опции нет для ShortcutInfo и ShortcutManager .это зависит от программы запуска и должно показывать этот значок, чтобы пользователь знал, в каком приложении он будет открыт.без этого значка невозможно определить, какое приложение добавило его (кроме открытия), это не так удобно для пользователя ... например, вы можете выдать себя за другое приложение, добавив, например, значок FB и имя ярлыка "Facebook", и Activity открытоПо этому ярлыку может быть подделан экран входа в систему.короче говоря: этот значок есть / должен быть там по соображениям безопасности

в моем модуле запуска долгое нажатие сразу начинает перемещать ярлык (без выпадающего меню, как для значка средства запуска), и у меня нет опции «Информация о приложении» сверхуэкрана (в «режиме перемещения»), только «Удалить»

, возможно, стоит рассмотреть вопрос о добавлении AppWidget , стилизованного под значок запуска с именем приложения?ярлыки доступны начиная с API25, виджеты доступны с самого начала, а начиная с API26 вы можете requestPinAppWidget (стиль диалога такой же, как для добавления ярлыка)

0 голосов
/ 02 апреля 2019

Добавьте строку ниже в вашем Manifest.xml

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

Код для создания ярлыка на рабочем столе,

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

        Intent addIntent = new Intent();
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "My Shortcut");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                        R.drawable.alert_clock));
        addIntent.putExtra("duplicate", false);
        addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        getApplicationContext().sendBroadcast(addIntent);


    }
0 голосов
/ 30 марта 2019

Попробуйте, это может быть работа для вас.mChannel.setShowBadge(false);

String id = "my_channel_01";
CharSequence name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.setShowBadge(false);

NotificationManager notificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(mChannel);
0 голосов
/ 21 марта 2019

Сначала загрузите пакет значков из PlayStore (загружается на выбор).Вернитесь на экран с оскорбительным значком.Нажмите и удерживайте значок, который вы хотите изменить (например, с дополнительным логотипом Chrome), и нажмите «Изменить».Нажмите значок изменения.Это даст вам возможность выбрать из пакета значков, так что нажмите.После этого у вас будет большой выбор значков, поэтому выберите тот, который лучше всего соответствует текущему значку, или выберите что-то совершенно другое.Затем нажмите ОК.Это изменит значок и не будет иметь дополнительного значка.

0 голосов
/ 12 октября 2018

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

...