web-dev-qa-db-ja.com

NotificationCompat-アイコンなしでアクションを追加する方法は?

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つのアクション(ボタン)を追加します。アイコンを表示せずにボタンを表示したいのですが、パラメータiconaddActionが必須であり、null許容ではないため、その方法がわかりません。

アイコンなしで通知にアクションボタンを追加することも可能ですか(ところで、アクションボタンのアイコンはNougat a Oreoにも表示されていないようです)。

7
user1209216

代わりに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);

私がテストした限り、すべてのデバイスで動作しました

18
Supto