Android 13发布版中Alarm Manager与声音通知失效问题排查
问题:Android 13发布版Flutter定时通知发声失效
我开发了一款Flutter应用,支持在指定时长后向用户发送通知,通过flutter_ringtone_player插件播放提示音,使用android_alarm_manager_plus调度通知任务。目前遇到的问题是,该功能运行一段时间后会停止发声,推测可能与Flutter版本升级或Android 13系统特性有关。
调度代码
var dr = Duration(seconds: config.delay); await saveShared(config); _scheduled = await AndroidAlarmManager.oneShot(dr, helloAlarmID, playAlarm, exact: true, wakeup: true, alarmClock: true, allowWhileIdle: true); return _scheduled;
playAlarm方法实现
static void playAlarm() async { var config = await loadShared(); playImpl(config) .then((_) => _scheduled = false) .onError((error, stackTrace) { print("failed to play notification"); print(error); return true; }); }
完整NotifyModel类及AndroidManifest文件可查看项目源码对应位置。
正常运行环境
- API 29模拟器
- API 33模拟器
- VSCode调试模式下的Android 13 Pixel 4a设备
失效场景
同一Pixel 4a设备上,从Google Play安装的发布版应用中该功能失效。需要说明的是:playImpl方法无论是从AlarmManager调度触发,还是通过UI按钮直接调用,其中的FlutterRingtonePlayer.play和FlutterRingtonePlayer.playNotification在UI调用时均能正常工作。
Flutter环境信息
[✓] Flutter (Channel stable, 3.3.1, on Ubuntu 22.04.1 LTS 5.15.0-48-generic, locale en_US.UTF-8) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0) [✓] VS Code (version 1.71.2)
更新
已找到类似问题案例,但切换到Flutter 3.0.5版本后仍未解决问题。
请问需要检查哪些内容来定位Android 13上Debug版与发布版的差异原因?
内容的提问来源于stack exchange,提问作者oleksa
相关产品推荐
相关产品推荐

