2014-08-29 143 views
2

我试图收到推送通知时播放声音。代码的要点如下所示:Notification.Builder.setSound没有效果

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

但是,我宁愿通过通知实例本身来解决这个问题,而不是手动播放声音。

回答

2

代码中的其他地方,我们使用的是mBuilder.setDefaults(DEFAULT_ALL),这意味着DEFAULT_SOUND。说明文档:

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