如何在没有声音java的情况下显示通知

如何发出在构建时不发出声音的通知?我正在构建通知,我的用户不喜欢它发出声音的事实。

如何将其更改为静音/完全没有声音?

如何显示通知:

android.support.v7.app.NotificationCompat.Builder builder = new android.support.v7.app.NotificationCompat.Builder(main);
builder.setStyle(new android.support.v7.app.NotificationCompat.BigTextStyle().bigText(text));
builder.setSmallIcon(R.drawable.app);
builder.setContentTitle("Rooster Maandag:");
builder.setOngoing(false);
builder.setAutoCancel(true);
builder.setSilent(true);
builder.setDefaults(Notification.DEFAULT_ALL);
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
notificationManager = (NotificationManager) main.getSystemService(main.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());

我试图在谷歌上搜索,但我得到的唯一结果是如何播放声音,而不是如何不播放声音......

编辑在某些人眼中,它可能是重复的,但是在我的眼中,我无法找到指定默认值的替代方案,而这种新方法称为setDefaults。


答案 1

要禁用OREO 8.1中的声音,请将通知的优先级更改为LOW,它将禁用通知的声音:

NotificationManager.IMPORTANCE_LOW

代码是这样的:

NotificationChannel chan1 = new NotificationChannel("default", "default", NotificationManager.IMPORTANCE_LOW);

答案 2

它在Android Oreo中适用于我。

你应该这样写你的频道:

NotificationChannel notificationChannel = new NotificationChannel("Id" , "Name", NotificationManager.IMPORTANCE_DEFAULT);
            notificationChannel.setSound(null, null);
            notificationChannel.setShowBadge(false);
            notificationManager.createNotificationChannel(notificationChannel);