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

Android无需点击FCM通知即可打开Activity的实现方案咨询

FCM无需点击通知直接唤起Activity实现方案

核心实现逻辑

  • 首先确保服务端发送的是FCM数据消息(Data Message),不要携带notification字段,仅在data字段中传入自定义跳转参数。如果携带notification字段,应用被杀状态下消息会由系统托盘接管,只有用户点击才会触发回调,无法自动跳转。
  • 自定义继承FirebaseMessagingService的服务类,重写onMessageReceived方法,收到消息回调后解析data中的跳转参数,构造目标Activity的启动Intent,添加Intent.FLAG_ACTIVITY_NEW_TASK标记后直接调用startActivity即可。

必要适配项

  • Android 10(API 29)及以上系统默认禁止后台应用启动Activity,需要提前向用户申请SYSTEM_ALERT_WINDOW悬浮窗权限,权限申请代码示例:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && !Settings.canDrawOverlays(context)) {
    Intent permitIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
            Uri.parse("package:" + context.getPackageName()));
    permitIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(permitIntent);
}
  • 国内定制ROM适配:小米、华为、OPPO、vivo等国产厂商系统默认会限制应用自启动、后台活动权限,需要引导用户手动将应用加入系统自启动白名单、省电优化白名单,同时开启允许应用后台弹出界面的权限,才能保证消息接收和跳转逻辑正常执行。
  • 无谷歌服务设备适配:国内大部分零售设备默认未内置谷歌服务,FCM无法正常工作,需要对应接入各厂商的系统推送通道,通过透传消息接收回调实现相同的自动唤起逻辑。

风险提示

该实现会未经用户交互直接唤起应用界面,极易引起用户反感,同时可能违反应用商店的上架审核规则,仅建议在企业内部应用、应急通知类强需求场景下使用,普通消费级应用不推荐采用该方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:36:03