Flutter调试版FCM推送正常但无法接收MoEngage推送求助
MoEngage Flutter 推送接收失败排查方案
- 初始化方法修正
你当前在Application.kt中使用原生Android的MoEngage.initialise()方法初始化不符合Flutter SDK的集成要求,需要替换为Flutter专属的初始化逻辑:// 替换原有初始化代码 val moEngage = MoEngage.Builder(this, "你的APP_KEY") .withConfig(LogConfig(LogLevel.VERBOSE)) // 开启日志方便排查 .build() MoEInitializer.initialiseDefaultInstance(applicationContext, moEngage) - 检查FCM令牌同步状态
开启SDK verbose日志后,过滤MoEngage关键词查看日志,确认是否有FCM令牌成功上报到MoEngage后台的记录。如果令牌未同步,MoEngage后台无法关联你的测试设备,自然无法下发推送。 - 校验后台活动受众配置
你创建的全量Android用户推送活动,需要确认测试设备已被MoEngage识别为有效用户:可以在MoEngage后台通过设备广告ID、包名等信息查询是否存在对应的设备记录,且设备的推送授权状态为已开启。 - 检查Android系统通知权限
若测试设备为Android 13及以上系统,需要先为APP授予POST_NOTIFICATIONS通知权限,未授予权限时即使SDK收到推送也无法弹出通知,可以先手动在系统设置中开启APP的通知权限再测试。 - 处理多推送服务冲突
如果项目中还存在其他自定义FirebaseMessagingService实现,需要在自定义服务的onMessageReceived方法中,将收到的远程消息传递给MoEngage SDK处理:
同时需要保证MoEPushHelper.getInstance().handlePushMessage(context, remoteMessage)AndroidManifest.xml中MoEngage的消息服务优先级不低于其他自定义推送服务。 - 校验通知渠道配置
Android 8.0及以上系统要求通知必须绑定有效渠道才能弹出,需要确认MoEngage后台推送活动中选择的通知渠道,已经在APP内提前创建完成,也可以在初始化时添加配置临时关闭渠道强制校验:val moEngage = MoEngage.Builder(this, "你的APP_KEY") .withConfig(NotificationConfig(isNotificationChannelMandatory = false)) .build() - 确认SDK版本匹配
需要确认pubspec.yaml中添加的moengage_flutter插件版本,与你引入的原生Android SDK 11.2.00版本匹配,版本不兼容会导致大量功能异常。
内容的提问来源于stack exchange,提问作者Lalit Rawat
相关产品推荐
相关产品推荐

