Android: отключен звук уведомления

У меня есть уведомление с этим кодом:

Notification notifica = new Notification();
notifica.flags |= Notification.FLAG_AUTO_CANCEL;
notifica.icon = R.drawable.serie_notification;
notifica.when = System.currentTimeMillis();

с notifica.defaults = notifica.defaults | Notification.DEFAULT_SOUND; Я включаю звук по умолчанию, но если я хочу отключить звук, как я могу это сделать?

Ответ 1

Ну, это сработало для меня, сделав это:

myNotification.defaults = 0;

Попробуй =)

Ответ 2

Это можно сделать, просто включив все остальные Notification.defaults кроме звука (который является Notification.DEFAULT_SOUND).

Вот пример, который будет работать для вас:

myNotification.defaults = 0;
myNotification.defaults |= Notification.DEFAULT_VIBRATE;

Вот все доступные опции, которые вы можете выбрать:

Notification.DEFAULT_LIGHTS
Notification.DEFAULT_VIBRATE
Notification.DEFAULT_SOUND
Notification.DEFAULT_ALL // This enables all above 3

Обновить

Уведомление. По .defaults не рекомендуется

Ответ 3

Для отображения уведомлений без звука на устройствах до Oreo, Oreo и выше



    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    Intent intent = new Intent(this, AlertDetails.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    String CHANNEL_ID = "channel_id";

    // You must create the channel to show the notification on Android 8.0 and higher versions
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        // Set importance to IMPORTANCE_LOW to mute notification sound on Android 8.0 and above
        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, "name", NotificationManager.IMPORTANCE_LOW);
        notificationManager.createNotificationChannel(channel);
    }

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle("My notification")
            .setContentText("Hello World!")
            // You must set the priority to support Android 7.1 and lower
            .setPriority(NotificationCompat.PRIORITY_LOW) // Set priority to PRIORITY_LOW to mute notification sound 
            .setContentIntent(pendingIntent)
            .setAutoCancel(true); 

    notificationManager.notify(
                    1001, // notification id
                    mBuilder.build());

Ответ 4

android "O"> =, отключить или включить звук уведомления вы используете два идентификатора для канала уведомления. один для звукового оповещения, а другой устанавливается, когда вы хотите отключить

@RequiresApi(api = Build.VERSION_CODES.O)
    private void createNotificationChannel(Context context, NotificationManager mNotificationManager, boolean playSound) { //The user-visible name of the channel. CharSequence name = context.getString(R.string.channel_name);//The user-visible description of the channel. String description = context.getString(R.string.channel_description); int importance = NotificationManager.IMPORTANCE_HIGH; NotificationChannel mChannel = new NotificationChannel(playSound? channel_id_sound: channel_id_no_sound, name, importance);//Configure the notification channel. mChannel.setDescription(description); mChannel.enableLights(true);//Sets the notification light color for notifications posted to this//channel, if the device supports this feature. mChannel.setLightColor(Color.RED); mChannel.enableVibration(true); mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}); if (!playSound) mChannel.setSound(null, null); mNotificationManager.createNotificationChannel(mChannel); }