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

Galaxy S21上应用自定义通知音不生效问题求助

三星Galaxy S21自定义通知音播放失效问题

我开发了一款可通过日历事件触发播放自定义通知音的应用,该应用在我的旧手机上运行完全正常,但在新的Galaxy S21上仅播放系统默认通知音,无法播放自定义音频。我在运行Android 11(S21宣称搭载的系统版本)的AVD模拟器上测试该应用,运行正常。自定义音频文件存在于S21设备中,且可通过音乐播放器正常播放。

此前有同类历史问题给出的解决方案是重启设备,我尝试后问题并未解决。

触发通知的代码如下:

private void emitNotification(String smallText, String bigText, String path) {
    RemoteViews layout = new RemoteViews(
        "uk.co.yahoo.p1rpp.calendartrigger",
        R.layout.notification);
    layout.setTextViewText(R.id.notificationtext, bigText);
    DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT);
    layout.setTextViewText(R.id.notificationtime,
                           df.format(System.currentTimeMillis()));
    Notification.Builder NBuilder
        = new Notification.Builder(this)
        .setSmallIcon(R.drawable.notif_icon)
        .setContentTitle(smallText)
        .setContent(layout);
    if ((path != null) && !path.isEmpty())
    {
        Uri uri = new Uri.Builder().path(path).build();
        AudioAttributes.Builder ABuilder
            = new AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN)
            .setLegacyStreamType(AudioManager.STREAM_NOTIFICATION);
        NBuilder.setSound(uri, ABuilder.build());
    }
    // Show notification
    NotificationManager notifManager = (NotificationManager)
        getSystemService(Context.NOTIFICATION_SERVICE);
    notifManager.notify(notifyId++, NBuilder.build());
}

完整源码已上传至GitHub的rparkins999/CalendarTrigger仓库的fix3.3分支。
我已在Git仓库中上传了构建完成的APK,大家可以尝试在其他设备上安装测试。你也可以自行从源码构建:由于我未公开我的私有签名密钥,你需要在项目根目录的相对路径下新建../Keys/Keystore.properties文件。

复现步骤

  • 运行应用,授予其请求的所有权限,点击「NEW EVENT CLASS」,为事件类命名后点击Create,此时你会看到包含多个按钮的页面,可通过按钮定义事件类的属性。
  • 点击「Event starts action(s) for class ...」,页面会展示应用支持的各类操作(部分功能暂不可用)。依次点击「Show a notification」、「Play a sound」、「Browse for a sound file」,此时会调出文件浏览器。
  • 选中音频文件后会返回上一级页面,原先的「Browse for a sound file」按钮会替换为你选中的音频文件路径。点击返回键回到按钮列表页,再点击「Immediate event of class ...」,应用理应播放你选中的自定义音频。

该流程在模拟器上运行正常,但在S21上仅播放系统默认通知音。
按上述配置完成的事件类会对所有日历事件触发通知,你可以通过删除该事件类,或在事件类定义页为日历事件设置触发条件来关闭该行为,两类操作均有对应的功能按钮。

我不确定该问题是S21的系统bug,还是由我未找到的某个隐藏设置导致。恳请大家提供帮助,尤其是可以告知该应用在其他运行Android 11的设备上是否可以正常运行,若能提供修复方案或临时解决方案就更好了!

最新更新

我刚刚安装了S21的最新系统更新,现在问题更严重了:自定义通知音相关的通知完全没有任何声音输出。


内容的提问来源于stack exchange,提问作者Richard Parkins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:15:04