Уведомление Android для воспроизведения только звука - PullRequest
8 голосов
/ 07 декабря 2011

У меня есть таймер обратного отсчета в моей активности, и когда он достигает нуля, я отправляю уведомление в строку состояния, которая также воспроизводит пользовательский wav-файл для предупреждения пользователя. Я хочу, чтобы уведомление в строке состояния отображалось только в том случае, если пользователь не использует приложение в данный момент, но я все же хочу, чтобы файл wav воспроизводился независимо от того, является ли приложение таймера видимым или нет.

Можно ли заставить уведомление Android воспроизводить только звуковое оповещение? Я попытался использовать MediaPlayer вместо воспроизведения wav-файла, но он использует свои собственные настройки громкости, а не обычную громкость уведомлений, поэтому, если громкость мультимедиа низкая, звук уведомления воспроизводится также на малой громкости, которую я не хочу Я хочу, чтобы звук воспроизводился с той же громкостью, что и другие уведомления.

Я использую это: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

И поставляем звук вот так:

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

Ответы [ 4 ]

5 голосов
/ 15 мая 2012

В разделе «Добавление звука» в http://developer.android.com/guide/topics/ui/notifiers/notifications.html есть следующее примечание:

Примечание. Если в поле по умолчанию включено DEFAULT_SOUND, то звук по умолчанию переопределяет любой звук, определенный параметромзвуковое поле.

Итак, если вы хотите настроить только звук, вы можете использовать -

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd);
notification.defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE;
4 голосов
/ 05 февраля 2013

Согласно моему эксперименту, вы действительно можете отправить уведомление, если оно не появилось в области уведомлений, но звук по-прежнему воспроизводился.

Все, что вам нужно сделать, это создать построитель уведомлений и установить для него звук, но пропустить ожидающее намерение, значок, заголовок содержимого и текст содержимого.

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSound(your_sound_uri);
notificationManager.notify(1234, builder.build());
0 голосов
/ 20 июня 2016
NotificationCompat.Builder builder= new NotificationCompat.Builder(this);

три способа установки звука

builder.setDefaults(Notification.DEFAULT_SOUND);
builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
0 голосов
/ 24 января 2015
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

Notification mNotification = new Notification.Builder(this)

            .setContentTitle("New Post!")
            .setContentText("Here's an awesome update for you!")
            .setSmallIcon(R.drawable.ic_lancher)
            .setContentIntent(pIntent)
            .setSound(soundUri)
            .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...