從 Android 8.0 (API 級別 26) 開始,當相關應用程式有有效通知時,啟動器圖示上會顯示通知徽章 (也稱為通知圓點)。使用者可以按住應用程式圖示,查看通知和任何應用程式捷徑,如圖 1 所示。
這些圓點預設會顯示在支援的啟動器應用程式中,應用程式不需要執行任何操作。不過,在某些情況下,您可能不想顯示通知圓點,或想控制要顯示哪些通知。
停用徽章
在某些情況下,徽章不適合用於通知,因此您可以呼叫 NotificationChannel
物件的 setShowBadge(false)
,依管道個別停用徽章。
舉例來說,您可能會在下列情況下停用通知徽章:
- 持續性通知:大部分的持續性通知 (例如圖片處理、媒體播放控制項或目前的導覽指示) 都不適合做為徽章。
- 日曆提醒:避免在目前時間發生的事件顯示徽章。
- 時鐘或鬧鐘事件:避免顯示與目前鬧鐘相關的徽章通知。
以下程式碼範例示範如何隱藏通知管道的徽章:
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,如圖 1 所示,但您可以為應用程式覆寫這個數字。舉例來說,如果您只使用一則通知代表多則新訊息,但希望計數器代表總的新訊息數量,這項功能就很實用。
如要設定自訂號碼,請在通知上呼叫 setNumber()
,如下所示:
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();
修改通知的按住選單圖示
按住選單會顯示與通知相關聯的大型或小型圖示 (如有)。根據預設,系統會顯示大型圖示,但您可以呼叫 Notification.Builder.setBadgeIconType()
,並傳入 BADGE_ICON_SMALL
常數來顯示小型圖示。
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();
隱藏重複的捷徑
如果應用程式建立的通知重複了應用程式捷徑,您可以在呼叫 setShortcutId()
時,暫時隱藏通知中的捷徑。
如需更多使用通知的程式碼範例,請參閱 SociaLite 範例應用程式。