Notification.Builder.setSound没有效果。

3
我想在收到推送通知时播放声音。代码的核心看起来像这样:
Resources r = getResources();
int resourceId = r.getIdentifier(soundName, "raw", context.getPackageName());
Uri soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + resourceId);
mBuilder.setSound(soundUri);

然而,当通知被接收时,只会播放默认的通知声音。

如果使用MediaPlayer播放声音,则可以正常播放。因此,我必须假设URI是正确的。

MediaPlayer mMediaPlayer = new MediaPlayer();
mMediaPlayer = MediaPlayer.create(this, resourceId);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(false);
mMediaPlayer.start();

然而,我更倾向于通过通知实例本身来解决这个问题,而不是手动播放声音。

1个回答

4
在代码的其他地方,我们使用了 mBuilder.setDefaults(DEFAULT_ALL),这意味着包括 DEFAULT_SOUND。相应的文档注明:

使用默认通知声音。这会忽略任何给定的声音。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接