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

Android 13通知关联全屏Intent无法启动问题求助

排查Android 13全屏Intent无法启动的问题

以下是几个关键排查点和修复方案:

  • 修正Activity的exported属性
    Android 12(API 31)及以上版本中,系统触发的PendingIntent(比如全屏通知)启动Activity时,即使是应用内部组件,android:exported="false"会限制系统启动该Activity。把RingActivity的exported改为true:

    <activity
        android:name=".RingActivity"
        android:exported="true"
        android:showOnLockScreen="true"
        android:turnScreenOn="true" />
    
  • 优化PendingIntent的参数
    用alarm.id作为requestCode替代固定值0,确保每个闹钟对应独立的PendingIntent,避免相互覆盖;同时保留必要的Flag组合:

    val pendingIntent = PendingIntent.getActivity(
        context, 
        alarm.id,
        intent, 
        PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
    )
    
  • 补充Intent的启动Flags
    仅设置FLAG_ACTIVITY_NEW_TASK不足以确保Activity在锁屏/后台场景下顺利启动并前置,补充以下Flags:

    val intent = Intent(context, RingActivity::class.java).also {
        it.flags = Intent.FLAG_ACTIVITY_NEW_TASK or 
                    Intent.FLAG_ACTIVITY_CLEAR_TOP or 
                    Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
        it.putExtra("id", alarm.id)
    }
    
  • 验证通知渠道优先级
    进入系统设置 → 应用 → 你的应用 → 通知,找到my_channel_id对应的渠道,确认其重要性为「高」或「紧急」——如果用户手动降级了渠道优先级,全屏Intent可能无法触发。

  • 确认特殊权限状态
    部分Android 13设备需要手动开启「显示在其他应用之上」权限才能触发全屏Intent:进入应用设置 → 权限 → 特殊权限 → 显示在其他应用之上,确保权限已启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:32:03