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

Android 13持续性通知可被滑动清除问题求助

Awesome Notifications在Android 13上无法保持不可清除的持续性通知问题

问题描述

使用awesome_notifications构建每秒更新状态的持续性通知时出现不一致行为:

  • Android 10系统上,通知无法被滑动清除,符合预期
  • Pixel 7的Android 13系统上,无论如何配置通知,都能从通知历史中被清除
  • 改用Kotlin原生实现测试,得到相同结果

不希望采用“通知被清除后重新发送”的临时方案,寻求原生支持的解决办法。

解决思路与方案

1. 检查通知渠道与通知的Ongoing配置

Android 13中,通知需同时满足以下条件才会被标记为不可清除:

  • 通知本身设置ongoing: true
  • 对应通知渠道未被用户手动修改为可清除
  • 渠道的importance级别不低于IMPORTANCE_LOW

确保awesome_notifications的初始化与通知创建代码包含这些配置:

// 初始化通知渠道
await AwesomeNotifications().initialize(
  null,
  [
    NotificationChannel(
      channelKey: 'status_channel',
      channelName: '实时状态通知',
      channelDescription: '用于展示每秒更新的状态信息',
      importance: NotificationImportance.High,
      enableOngoing: true, // 标记渠道为持续性通知渠道
    )
  ],
);

// 创建持续性通知
await AwesomeNotifications().createNotification(
  content: NotificationContent(
    id: 1,
    channelKey: 'status_channel',
    title: '当前状态',
    body: '更新中...',
    ongoing: true, // 核心参数:标记通知为不可清除
  ),
);

2. 绑定前台服务(推荐方案)

对于需要长期持续显示且绝对不可清除的通知,Android官方推荐将其与前台服务绑定。Android 13对前台服务的通知有特殊保护,不允许用户滑动清除:

  • 创建前台服务,在服务启动时调用startForeground(NOTIFICATION_ID, notification)将通知设为前台通知
  • 在AndroidManifest.xml中声明前台服务权限及类型:
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <!-- 根据使用场景选择对应类型 -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
    
    <service
      android:name=".StatusForegroundService"
      android:foregroundServiceType="dataSync" />
    
  • 使用awesome_notifications构建通知后,传递给前台服务启动

3. 确认通知权限状态

Android 13要求应用显式请求POST_NOTIFICATIONS权限。如果权限未授予,通知可能无法正常保持持续性:

if (!await AwesomeNotifications().isNotificationAllowed()) {
  await AwesomeNotifications().requestPermissionToSendNotifications();
}

4. 排查系统层面的特殊设置

Pixel设备的Android 13可能有定制化通知行为,检查以下设置:

  • 进入系统设置→应用→你的应用→通知,确认对应通知渠道未被设置为“可清除”
  • 关闭“通知历史记录”的手动清除权限(部分定制系统可能允许单独设置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:58:24