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

Android 13本地通知不显示问题求助(附代码)

Android 13 通知不显示排查建议

权限验证

  • 仅在Manifest声明POST_NOTIFICATIONS权限不够,Android 13要求必须主动申请运行时权限。检查代码中是否有调用requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS), 1001)这类逻辑,且用户已授予权限。可以通过checkSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED验证权限状态。
  • 确认模拟器中应用的通知权限已手动开启:进入「设置 > 应用 > 你的应用 > 权限」,确保「通知」权限处于启用状态,部分模拟器默认会关闭新应用的通知权限。

通知渠道检查

  • Android 8.0+必须创建有效通知渠道,Android 13对渠道优先级要求更严格:
    • 检查是否调用NotificationManager.createNotificationChannel()创建渠道,且渠道的importance设置为IMPORTANCE_DEFAULT及以上(不能是IMPORTANCE_NONE)。
    • 发送通知时指定的渠道ID必须和创建渠道时的ID完全一致,大小写、字符串内容不能有差异。

通知实例构造校验

  • 确保通知设置了必填参数:
    • 必须通过setSmallIcon()设置有效小图标,Android 13会直接过滤缺失小图标的通知。
    • setContentTitle和setContentText不能为空,空内容的通知可能被系统拦截。
  • 确认NotificationManager.notify()是在主线程调用的,子线程中发送通知可能导致投递失败。

代码逻辑排查

  • 验证AlarmReceiver是否被正确触发:在接收器的onReceive()方法中添加日志,确认该方法确实被执行。
  • 检查PendingIntent的flags配置:Android 13推荐使用PendingIntent.FLAG_IMMUTABLE(如果不需要修改intent)或FLAG_MUTABLE,错误的flags可能导致通知触发失败。

模拟器环境排查

  • 确认模拟器系统版本为Android 13(API 33),避免版本不匹配导致的问题。
  • 检查通知栏的过滤设置:下拉通知栏,查看是否有折叠的「静默通知」分类,你的通知可能被归类到这里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:54:52