You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo推送通知自定义音效仅前台生效,后台/关闭时用系统音求助

问题分析与解决方案

你的问题核心是:应用前台时推送通知能使用自定义音效和指定通道,但后台/关闭时系统 fallback 到默认的 miscellaneous 通道并使用系统音效。这通常是因为指定的通知通道未在系统中正确创建,或者通知发送时通道ID未被正确识别,导致系统自动创建默认通道处理后台通知。

以下是具体排查和解决步骤:

1. 确保通知通道在应用初始化时创建

通知通道是保存在Android系统中的,只要创建过一次就会保留,但如果用户首次打开应用时未执行通道创建代码,后续后台收到通知时通道不存在,系统就会用默认通道。

修改前端代码,在App初始化时就创建通道,而非仅在前台触发:

import { useEffect } from 'react';
import { Notifications } from 'expo';

export default function App() {
  useEffect(() => {
    const setupNotificationChannel = async () => {
      try {
        await Notifications.setNotificationChannelAsync("ltsChannel", {
          name: "ltsChannel",
          sound: "sound.wav",
          importance: Notifications.AndroidImportance.MAX,
          audioAttributes: {
            usage: Notifications.AndroidAudioUsage.ALARM,
            contentType: Notifications.AndroidAudioContentType.SONIFICATION,
          },
        });
        console.log("通知通道创建成功");
      } catch (err) {
        console.error("通知通道创建失败:", err);
      }
    };

    setupNotificationChannel();
  }, []);

  // 应用其他逻辑...
}

2. 验证自定义音效文件的打包配置

确保音效文件被正确打包到生产APK中:

  • 将 sound.wav 放在项目的 assets 目录下
  • 在 app.json/app.config.js 中配置资源打包规则,确保包含该文件:
{
  "expo": {
    "assetBundlePatterns": [
      "assets/**/*"
    ],
    // 其他配置...
  }
}

注意:Android仅支持WAV、MP3、OGG格式的音效,文件大小建议控制在1MB以内,采样率不超过48kHz,否则系统可能忽略自定义音效。

3. 确认前后端Channel ID完全一致

Android的通知通道ID区分大小写,确保后端发送的channelId与前端创建的完全一致(比如都是ltsChannel,没有大小写错误)。

4. 检查通道是否在系统中存在

安装应用后,前往手机的设置 > 应用 > 你的应用 > 通知,查看是否存在ltsChannel通道:

  • 如果不存在,说明前端的通道创建代码未执行成功,检查日志中的错误信息
  • 如果存在,点击进入通道详情,确认音效是否设置为你的自定义音效

5. 确保申请了必要的通知权限

Android 13及以上需要明确申请POST_NOTIFICATIONS权限:

  • 在app.json中添加权限配置:
{
  "expo": {
    "permissions": ["NOTIFICATIONS"],
    // 其他配置...
  }
}
  • 在前端请求权限:
const { status } = await Notifications.requestPermissionsAsync();
if (status !== 'granted') {
  alert('需要开启通知权限才能接收推送');
}

测试步骤

  1. 卸载现有生产APK,清除应用残留数据
  2. 重新安装APK,确保首次启动时执行了通道创建代码
  3. 关闭应用,发送测试通知,检查通知使用的通道和音效是否符合预期

内容的提问来源于stack exchange,提问作者Wael Ben Mustapha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:23:27