我正在尝试在收到推送通知时播放声音。代码的要点如下所示:
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();
但是,我更愿意通过通知实例本身来解决这个问题,而不是手动播放声音。
最佳答案
在代码的其他地方,我们使用了 mBuilder.setDefaults(DEFAULT_ALL)
,这意味着 DEFAULT_SOUND
。注释的文档:
Use the default notification sound. This will ignore any given sound.
关于android - Notification.Builder.setSound 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25566215/