Android Notification仅播放声音

时间:2011-12-07 11:22:02

标签: android audio notifications

我的活动中有倒数计时器,当它达到零时,我会向状态栏发送通知,该状态栏还会播放自定义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 个答案:

答案 0 :(得分:5)

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;

答案 1 :(得分:4)

根据我的实验,您确实可以发送通知而不会出现在通知区域中,但仍然会播放声音。

您需要做的就是构建通知构建器并为其设置声音,但跳过待处理的意图,图标,内容标题和内容文本。

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSound(your_sound_uri);
notificationManager.notify(1234, builder.build());

答案 2 :(得分:0)

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();

答案 3 :(得分:0)

NotificationCompat.Builder builder= new NotificationCompat.Builder(this);

setSound的三种方法

builder.setDefaults(Notification.DEFAULT_SOUND);
builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);