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

Android端Mesibo应用被清除后台后推送通知不显示问题求助

解决方案:Mesibo应用被后台杀死后无法接收推送通知

针对你的问题(应用从最近列表清除后无法显示Mesibo推送,前台/后台正常,Mesibo SDK 2.7.16,Android 14),可以从以下几个关键配置和设置入手解决:

1. 确认FCM推送集成正确性

应用被杀死后,Mesibo依赖Firebase Cloud Messaging(FCM)的后台消息触发通知,需确保FCM集成无误:

  • 实现自定义FirebaseMessagingService,将消息交给Mesibo处理:
    class MyFirebaseMessagingService : FirebaseMessagingService() {
        override fun onMessageReceived(remoteMessage: RemoteMessage) {
            // 优先交给Mesibo处理推送
            if (Mesibo.onFirebaseMessage(remoteMessage)) return
            // 处理其他自定义推送
        }
    
        override fun onNewToken(token: String) {
            // 同步FCM Token到Mesibo
            Mesibo.setPushToken(token)
        }
    }
    
  • 在AndroidManifest.xml中正确注册该服务:
    <service
        android:name=".MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    
  • 确保Mesibo控制台已配置正确的FCM服务器密钥和发送者ID。

2. 适配Android 14通知权限要求

Android 14强制要求POST_NOTIFICATIONS权限,需动态申请并确保用户授权:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
        // 发起权限请求
        requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS), 1001)
    }
}

同时确认通知渠道已创建(Android 8.0+要求):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    val channel = NotificationChannel(
        "mesibo_notification",
        "Mesibo消息通知",
        NotificationManager.IMPORTANCE_HIGH
    )
    getSystemService(NotificationManager::class.java).createNotificationChannel(channel)
}

3. 绕过厂商后台限制(核心)

国内Android厂商(小米、华为、OPPO、vivo等)会在应用被清除后台后强制杀死进程并阻断FCM触发,需引导用户手动开启后台权限:

  • 小米:设置 → 应用设置 → 应用管理 → 你的应用 → 省电策略 → 选择「无限制」
  • 华为:设置 → 应用和服务 → 应用启动管理 → 你的应用 → 关闭「自动管理」,开启「允许后台活动」
  • OPPO:设置 → 应用管理 → 你的应用 → 耗电管理 → 开启「允许后台耗电」
  • vivo:设置 → 电池 → 后台高耗电 → 允许你的应用后台高耗电
    建议在应用内添加引导页面,告知用户开启该权限的步骤,这是系统级限制,无法通过代码绕过。

4. 检查Mesibo推送逻辑配置

  • 确认MessageListener的onPushNotification方法设置正确:如果需要Mesibo默认显示通知,返回false;如果自定义通知,返回true并自行实现通知逻辑:
    override fun onPushNotification(pn: MesiboPushNotification?): Boolean {
        // 让Mesibo默认处理通知,返回false
        return false
    }
    
  • 确保Mesibo初始化时已调用Mesibo.start(),且Mesibo.setPushToken在获取到FCM Token后正确执行。

5. 正确测试推送

  • 使用真实设备测试,模拟器的后台行为与真实设备存在差异;
  • 测试前需彻底清除应用(从最近列表滑动移除),再发送Mesibo消息验证通知是否显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:03:27