react-native-push-notification添加配置后自定义通知声音仍不生效
安卓端react-native-push-notification自定义通知音不生效解决方案
- 优先处理通知渠道配置(安卓8.0及以上必做)
安卓API 26之后,通知的音效、振动等属性完全由通知渠道的配置决定,触发通知时传入的soundName不会覆盖渠道已有配置。你需要在初始化通知时主动创建自定义音效的渠道,示例代码如下:
配置完成后,触发通知时的PushNotification.createChannel( { channelId: "custom-sound-channel", // 不要用之前已存在的旧channelId,避免缓存问题 channelName: "自定义音效通知渠道", channelDescription: "用于播放自定义通知音的通知渠道", playSound: true, soundName: "sound_one", // 不要加.mp3后缀 importance: 4, // 必须设置为4及以上才能保证通知弹出+播放音效 vibrate: true, }, (created) => console.log(`渠道创建结果:${created}`) );channelId要和你新创建的渠道ID保持一致。 - 修正触发通知时的
soundName参数
安卓平台下引用raw目录的资源不需要加文件后缀,将你现有代码中的soundName: 'sound_one.mp3'修改为soundName: 'sound_one'即可。 - 检查音频文件配置
确认音频文件存放路径为android/app/src/main/res/raw/sound_one.mp3,文件名只能包含小写字母、数字、下划线,不能有大写字符、空格或特殊符号,音频编码选用通用的MP3/WAV格式,避免使用偏门编码导致系统无法识别。 - 清理旧渠道缓存
如果你之前已经使用过default-channel-id创建过渠道,安卓系统会保留该渠道的原有配置,即使修改代码也不会更新。解决方法有两种:- 卸载APP后重新安装,清除旧渠道缓存
- 使用全新的、从未用过的channelId创建新渠道
内容的提问来源于stack exchange,提问作者Amey Khoje
相关产品推荐
相关产品推荐

