通知バッジを変更する

Android 8.0(API レベル 26)以降、通知バッジ(別名) 通知ドット - 関連付けられているアプリに 通知を受け取れます。ユーザーができること タップ&アプリアイコンを長押しすると、通知、 アプリのショートカット: 図 1.

これらのドットは、対応するランチャー アプリでデフォルトで表示されます。また、 何もする必要はありません。ただし、 通知ドットを表示したくない場合や、 どの通知を表示するかを指定できます

図 1. 通知バッジ、タップ&メニューを長押しします。

バッジを無効にする

通知にバッジが適さない場合があるため、 次の呼び出しによって、チャネルごとに無効にできます。 setShowBadge(false) NotificationChannel 渡されます。

たとえば、次のように通知バッジを無効にできます。 次のような状況になります。

  • 進行中の通知: 画像の処理、 メディアの再生コントロール、または現在のナビゲーションの指示が意味をなさない バッジとして表示できます。
  • カレンダーのリマインダー: 現在の時刻に発生している予定にバッジを付けないでください。
  • 時計またはアラームのアクティビティ: 現在のアラームに関連するバッジ通知を表示しないようにします。

次のサンプルコードは、 通知チャンネル:

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 のようにオーバーライドできますが、アプリでこの数をオーバーライドすることもできます。 これは、たとえば、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()

通知を使用するその他のサンプルコードについては、People サンプルをご覧ください。