NotificationCompat - 如何添加没有图标的操作?

10
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);
上面的代码创建了通知并向其中添加一个动作按钮。我希望我的按钮没有显示图标,但我不知道如何做到这一点,因为在参数addAction中icon是必需的且不可为空。
是否可能在通知中添加没有任何图标的动作按钮?(顺便说一下,在Nougat和Oreo上,动作按钮上的图标似乎甚至都不会显示。)
1个回答

27

请使用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);

目前为止,我测试的所有设备都正常工作。


4
看源代码,我猜addAction(0,"action test",pi)应该是一样的,它在内部调用了addAction(new Action(icon, title, intent)),但我不确定能否将0作为资源ID传递。 - user1209216
传递0而不是null感觉有点奇怪,但没问题。 - Someone Somewhere
int 不能为null。 - quealegriamasalegre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接