NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.schedule)
.addAction(R.drawable.icon,"action test",pi)
.setStyle(new NotificationCompat.BigTextStyle().bigText(body))
.setContentTitle(title)
.setContentText(body);
上記のコードは通知を作成し、それに1つのアクション(ボタン)を追加します。アイコンを表示せずにボタンを表示したいのですが、パラメータicon
のaddAction
が必須であり、null許容ではないため、その方法がわかりません。
アイコンなしで通知にアクションボタンを追加することも可能ですか(ところで、アクションボタンのアイコンはNougat a Oreoにも表示されていないようです)。
代わりにNotificationCompat.Actionを使用してください。そして、アイコンの値として0を設定します
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
0, "action test", pi
).build();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.schedule)
.addAction(action)
.setStyle(new NotificationCompat.BigTextStyle().bigText(body))
.setContentTitle(title)
.setContentText(body);
私がテストした限り、すべてのデバイスで動作しました