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

Android平台audio_service前台服务真机通知异常排查

问题解决:audio_service真机通知异常

问题现象

模拟器上audio_service前台服务通知正常显示指定图标,点击可返回应用;但真机上通知无图标,点击直接跳转到应用设置页面。

修复方案

1. 修正通知图标路径

你的AudioServiceConfig中androidNotificationIcon使用了drawable/ic_notification,Android资源引用不需要前缀,直接写资源名称即可:

audioHandler = await AudioService.init(
  builder: () => TimerAudioHandler(audioControls),
  config: const AudioServiceConfig(
    androidNotificationChannelId: 'app.example.example.timer',
    androidNotificationChannelName: 'Timer',
    androidNotificationOngoing: true,
    androidStopForegroundOnPause: true,
    androidNotificationIcon: 'ic_notification', // 去掉drawable/前缀
  ),
);

同时确认ic_notification图标文件存在于android/app/src/main/res/下的所有drawable-*分辨率目录中,且符合Android通知图标规范(透明背景、单色设计)。

2. 配置通知点击跳转行为

默认情况下,audio_service可能无法正确关联主Activity,导致点击通知跳转异常。添加androidNotificationClickStartsActivity: true强制点击通知打开应用主页面:

config: const AudioServiceConfig(
  // 其他配置不变
  androidNotificationClickStartsActivity: true,
),

3. 验证Manifest配置细节

你的Manifest已包含必要权限,但需确认:

  • AudioService的android:exported属性为true(已配置,无需修改)
  • MainActivity的intent-filter同时包含MAIN和LAUNCHER类别(已配置,确保是唯一的启动Activity)

4. 同步通知渠道配置

由于同时使用flutter_local_notifications,建议提前创建与audio_service一致的通知渠道,避免真机上渠道配置冲突:

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
// 创建匹配的通知渠道
const channel = AndroidNotificationChannel(
  'app.example.example.timer',
  'Timer',
  importance: Importance.high,
);
await flutterLocalNotificationsPlugin.createNotificationChannel(channel);

在初始化audio_service前执行这段代码,确保渠道配置统一。

验证步骤

  1. 清理项目缓存(flutter clean)
  2. 重新编译安装到真机
  3. 测试通知图标显示和点击跳转行为

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:24:51