Android动态更改通知图标,修改通知标志  |  Android 开发者  |  Android Developers

从 8.0(API 级别 26)开始,当关联的应用有活动通知时,启动器图标上会显示通知标志(也称为通知圆点)。用户可以长按应用图标以显示通知(以及任何应用快捷方式),如图 1 所示。

默认情况下,这些圆点会显示在支持圆点的启动器应用中,您的应用无需执行任何操作。然而,在某些情况下,您可能不希望显示通知圆点,或者想要精确控制要在其中显示哪些通知。

232dc9fd330f478fa8781c6026f61d65.png

图 1. 通知标志和长按菜单

停用标志

在某些情况下,您的通知并不适合显示标志,您可以通过对

例如,您可能希望在以下情况下停用通知标志:

持续显示的通知:大多数持续显示的通知(例如图片处理、媒体播放控件或当前导航说明)都不适合显示为标志。

日历提醒:避免当前时间发生标志事件。

时钟或闹钟事件:避免与当前闹钟相关的标志通知。

以下示例代码说明了如何针对某个通知渠道隐藏标志:

Kotlin

val id = "my_channel_01"

val name = getString(R.string.channel_name)

val descriptionText = getString(R.string.channel_description)

val importance = NotificationManager.IMPORTANCE_LOW

val mChannel = NotificationChannel(id, name, importance).apply {

description = descriptionText

setShowBadge(false)

}

val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

notificationManager.createNotificationChannel(mChannel)Java

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);

设置自定义通知计数

默认情况下,长按菜单上显示的数字会随着通知数量递增(如图 1 所示),但您可以针对自己的应用替换此数字。例如,如果您仅使用一个通知表示多条新信息,但希望此处的计数代表新信息总数,这种情况下,替换该数字可能会很有用。

如需设置自定义数字,请对通知调用

Kotlin

var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)

.setContentTitle("New Messages")

.setContentText("You've received 3 new messages.")

.setSmallIcon(R.drawable.ic_notify_status)

.setNumber(messageCount)

.build()Java

Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)

.setContentTitle("New Messages")

.setContentText("You've received 3 new messages.")

.setSmallIcon(R.drawable.ic_notify_status)

.setNumber(messageCount)

.build();

修改通知的长按菜单图标

长按菜单会显示与通知关联的大图标或小图标(如果有)。默认情况下,系统会显示大图标,但是您可以调用

Kotlin

var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)

.setContentTitle("New Messages")

.setContentText("You've received 3 new messages.")

.setSmallIcon(R.drawable.ic_notify_status)

.setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)

.build()Java

Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)

.setContentTitle("New Messages")

.setContentText("You've received 3 new messages.")

.setSmallIcon(R.drawable.ic_notify_status)

.setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)

.build();

隐藏重复的快捷方式

如果您的应用创建了一条与应用快捷方式重复的通知,您可以调用

如需获取更多使用通知的示例代码,请参阅 Android 通知示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值