Как добавить звук в уведомление?
Как добавить звук в уведомление, созданное 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());
Ответы
Ответ 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");
Затем просто используйте диспетчер уведомлений для отправки уведомления.
Если оба этих оператора используются, приложение по умолчанию будет использовать звук по умолчанию.