在 Android O 中引入了新的固定快捷方式 API。此外,他们简单地阻止旧方式(通过“com.android.launcher.action.INSTALL_SHORTCUT”操作)。
最后,这个 API 可以工作,但新的固定快捷方式图标在右下角有应用程序图标。即您在 API 中提供了一些图标,但启动器上的最终快捷方式图标具有附加应用程序图标。
我知道这是专门为通知用户哪个应用程序创建了快捷方式而添加的。
但是有什么办法可以删除这个图标并显示我提供的图标ShortcutManager.requestPinShortcut (ShortcutInfo shortcut,IntentSender resultIntent)
吗?
更新 1
我的应用程序的许多用户认为我专门这样做(有些用户甚至尝试购买专业模式来禁用此功能)。所以我真的很想找到任何可能的解决方法,正如我从 Oreo 源代码中所了解的那样 - 发生这种情况是因为启动器应用程序请求带有徽章的快捷方式图标。因此只能在启动器端进行有效修复。
我还尝试欺骗系统功能以获取带有徽章的快捷方式图标 - 当您使用 requestPinShortcut 时,系统会自动将您的应用程序 ID 添加到快捷方式信息中,我试图避免这种情况并提供 0 而不是有效的应用程序 ID,但似乎某处低级别这被阻止并且不会创建快捷方式。
另一个尝试:将应用程序图标设置为透明,这样可以正常工作,但看起来不太酷(您的应用程序图标为空)。所以我尝试创建没有主要活动但应用程序图标为空的单独应用程序 - 在这种情况下系统崩溃:)
最后我只能找到一种解决方法 - 如果用户不在应用程序中添加快捷方式,而是通过从小部件流添加那么快捷方式图标不会改变。我向我的用户提供了这个解决方案。