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

use*_*216 7 java notifications icons android action

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);
Run Code Online (Sandbox Code Playgroud)

上面的代码创建通知并向其添加一个操作(按钮).我希望我的按钮没有显示图标,但我不知道该怎么做,因为icon参数addAction 是必需的而不是可空的.

甚至可以在没有任何图标的情况下向通知添加动作按钮(顺便说一句,动作按钮上的图标似乎甚至没有显示在Nougat an Oreo上).

小智 12

请改用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);
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经测试了所有设备

  • 我猜 `addAction(0,"action test",pi)` 应该是一样的,查看它内部调用的源代码 `addAction(new Action(icon, title, intent))` 但我不确定我是否可以通过0 作为资源 ID (3认同)