Android 为前台服务发送通用通知而不是自定义通知

Android send out generic notification instead of custom one for foreground service

我正在尝试为我的前台服务创建一个带有操作的自定义通知,但出于某种原因 android 一直在发送通用的“{appname} is 运行 in the background | tap获取更多信息或停止应用程序”通知。

我在我的服务中做什么 class (onStartCommand):

创建通知渠道:

private void createNotificationChannel() {
    NotificationChannel serviceChannel = new NotificationChannel(
            CHANNEL_ID,
            "Foreground Service Channel",
            NotificationManager.IMPORTANCE_DEFAULT
    );
    NotificationManager manager = (NotificationManager) getSystemService(NotificationManager.class);
    manager.createNotificationChannel(serviceChannel);
}

创建一个意图(针对 contentIntent)并设置标志:

 Intent notificationIntent = new Intent(this, MainActivity.class);
            notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            notificationIntent.setAction(Constants.ACTION_MAIN_ACTIVITY);

为所述意图创建待定意图:

 PendingIntent pendingIntent = PendingIntent.getActivity(this,
            0, notificationIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);

创建操作意图及其待定意图:

 Intent stopIntent = new Intent(this, WebSocketService.class);
 stopIntent.setAction(Constants.ACTION_STOP_SERVICE);

 PendingIntent stopPendingIntent = PendingIntent.getService(this,
                    0, stopIntent,
                    PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);

创建通知本身:

 Notification.Builder notification = new Notification.Builder(this, CHANNEL_ID)
                    .setContentTitle("Foreground Service")
                    .setTicker("TestTicker")
                    .setContentText("TestText")
                    .setPriority(Notification.PRIORITY_MAX)
                    .setWhen(0)
                    .setOngoing(true)
                    .setContentIntent(pendingIntent)
                    .addAction(android.R.drawable.ic_delete, "Stop", stopPendingIntent);

 Notification not = notification.build();

启动服务:

startForeground(1, not);

我已经在多个设备上对此进行了测试 运行 不同版本的 Android(10、11 和 12),但它们都显示相同的结果。 有什么我忽略的吗?我是否在意图上设置了错误的标志?

谢谢!

尝试向通知生成器添加小图标值。

Notification.Builder notification = new Notification.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.icon)