Нет звука при получении уведомления pu sh - PullRequest
0 голосов
/ 24 апреля 2020

Я использую react-native-firebase v6 для обработки уведомления pu sh. Проблема в том, что при получении уведомления pu sh звук не воспроизводится.

Я создал канал и установил для него высокий приоритет, так как канал по умолчанию, созданный response-native-firebase, не имеет звука. Вот код, который я использовал в MainActivity. java

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {    
    NotificationChannel notificationChannel = new NotificationChannel("notifid", "App notification channel", NotificationManager.IMPORTANCE_HIGH);
    notificationChannel.setShowBadge(true);
    notificationChannel.setDescription("custom notification channel");
    notificationChannel.enableVibration(true);
    notificationChannel.enableLights(true);
    notificationChannel.setVibrationPattern(new long[]{400, 200, 400});
    //notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
    NotificationManager manager = getSystemService(NotificationManager.class);
    manager.createNotificationChannel(notificationChannel);
  }
}

А вот код для изменения канала в firebase. json

{
  "react-native": {
    "messaging_android_notification_channel_id": "notifid"
  }
}

Но при получении уведомления звук все еще не воспроизводится.

1 Ответ

0 голосов
/ 24 апреля 2020

Вам нужно установить звук через метод setSound. Используя класс NotificationChannel, вы можете установить звук для каждого канала отдельно и воспроизводить его при получении определенного уведомления. В соответствии с docs

Устанавливает звук, который должен воспроизводиться для уведомлений, публикуемых на этот канал, и его звуковые атрибуты. Каналы уведомлений с важностью как минимум NotificationManager # IMPORTANCE_DEFAULT должны иметь звук. Изменяется только перед отправкой канала в NotificationManager # createNotificationChannel (NotificationChannel).

Вы можете использовать системный звук или получить свое собственное звуковое место в папке res и соответственно вызвать его в сигнатуре метода. Просто добавьте следующую строку кода для установки звука:

notificationChannel.setSound("sound.mp3",AttributesToSet);

Здесь AttributesToSet относится к AudioAttributes классу, который вы можете использовать для предоставления дополнительной информации о вашем звуковом файле.

ОБНОВЛЕНИЕ: Чтобы использовать звук уведомления по умолчанию, вы можете использовать следующий фрагмент.

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); //define this before building notification channel

Затем используйте этот URI в методе setSound как: messagesChannel.setSound (Notification);

...