Удалить значок приложения в закрепленных ярлыках Android O
В Android O был представлен новый API закрепленных ярлыков. Кроме того, они просто блокируют старый способ (с помощью действия "com.android.launcher.action.INSTALL_SHORTCUT").
В конце концов этот API работает, но у новых закрепленных ярлыков есть значок приложения в правом нижнем углу. Т.е. вы предоставляете какой-то значок в API, а последний ярлык на панели запуска есть в дополнительном значке приложения.
Я знаю, что это было добавлено специально для информирования пользователя, какое приложение создало ярлык.
Но есть ли способ удалить этот значок и показать значок, который я предоставляю в ShortcutManager.requestPinShortcut (ShortcutInfo shortcut,IntentSender resultIntent)
?
Обновление 1
Многие пользователи моего приложения считают, что я делаю это специально (а некоторые даже пытаются купить режим Pro, чтобы отключить это). Поэтому я действительно хочу найти любые возможные обходные пути, как я понимаю из исходного кода Oreo, - это происходит потому, что приложение запуска запускает значок ярлыка со значком. Таким образом, корректное исправление может быть сделано только на стороне запуска.
Я также пытался обмануть системную функцию для получения ярлыка с помощью значка - пока вы используете requestPinShortcut, система автоматически добавляет идентификатор вашего приложения к информации о ярлыке, я пытался избежать этого и выдавать 0 вместо действительного идентификатора приложения, но кажется где-то на низком уровне. Уровень этого заблокирован и создание ярлыков не происходит.
Еще одна попытка: установите значок приложения на прозрачный, чтобы это работало, но не круто (значок вашего приложения пуст). Поэтому я попытался создать отдельное приложение без основной активности, но с пустым значком приложения - в этом случае система зависает:)
В конце я могу найти только один обходной путь - если пользователь добавляет ярлык не в приложении, а через поток добавления из виджетов, то значок ярлыка не изменяется. Я предоставил это решение своим пользователям.