[英]How does notification badges implemented in Android launchers? Can I do this in my application?
[英]How to handle Android notification badges with multiple launchers?
从Android 8开始,所有通知都应分配给一些NotificationChannel
。 就我而言,问题在于该应用程序有多个启动器,并且徽章显示在每个启动器上。
因此,我可以为每个NotificationChannel
禁用徽章,但是无论如何,它们可以由用户打开。
是否可以将“ NotificationChannel”连接到特定的启动器活动? 我还没有找到任何存在的API,也没有提到这是目前的限制。
您可以禁用每个频道的徽章,例如。 使用mChannel.
setShowBadge(false)
设置发布到此频道的通知是否可以在启动器中显示为应用程序图标标志。 仅在将通道提交到NotificationManager.createNotificationChannel(NotificationChannel)之前可以修改 。
... channelId
某些channelId
分配给NotificationChannel时 。
setGroup()
/ getGroup()
和canShowBadge()
也显得相关。
因此,您必须为每个启动器定义频道(或至少两个频道,以便至少有一个不显示徽章的频道)-然后您可以为其中一些徽章禁用徽章,具体取决于将通知发送到哪个频道。
也有NotificationCompat.Builder(Context context, String channelId)
.setShortcutId方法(字符串shortcutId) :
如果此通知与启动器快捷方式重复,则设置启动器的ID,以防启动器要隐藏快捷方式。
LauncherApps可以提供对这些快捷方式的访问;
并且至少可以从ShortcutInfo 获得徽章图标。
那里有android.intent.action.BADGE_COUNT_UPDATE
用于库存Android Oreo。
当前,只有Sony启动器允许使用com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME
定义“活动”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.