Подтвердить что ты не робот

Как добавить звук в уведомление?

Как добавить звук в уведомление, созданное NotificationCompat.Builder? Я создал необработанную папку в res и добавил туда звук. Итак, как мне добавить его в уведомление? Это мой код уведомления

    int NOTIFY_ID=100;
    Intent notificationIntent = new Intent(this, Notification.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
            .setContentIntent(pendingIntent)
            .setSmallIcon(R.drawable.notification)
            .setContentTitle("Warning")
            .setContentText("Help!")

    NotificationManager mgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mgr.notify(NOTIFY_ID, mBuilder.build());
4b9b3361

Ответ 1

Я предполагаю, что проблема заключается в том, как ссылаться на звук с помощью Uri, поскольку в классе NotificationCompat.Builder есть очевидный метод - setSound(Uri soundUri).

Чтобы получить доступ к ресурсам raw, вам необходимо создать Uri следующим образом:

android.resource://[PACKAGE_NAME]/[RESOURCE_ID]

Таким образом, код может выглядеть следующим образом:

Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd);
mBuilder.setSound(sound);

Ответ 2

Чтобы воспроизвести звук с уведомлением:

Notification notification = new Notification(icon, tickerText, when);

Выполнять обычные процедуры уведомления

Чтобы воспроизвести звук по умолчанию с уведомлением:

notification.defaults |= Notification.DEFAULT_SOUND;

Чтобы воспроизвести пользовательский звук с уведомлением:

notification.sound = Uri.parse("file:///sdcard/notification/notification.mp3");

Затем просто используйте диспетчер уведомлений для отправки уведомления. Если оба этих оператора используются, приложение по умолчанию будет использовать звук по умолчанию.