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

Delphi开发Android App开启推送通知后无法启动(API>30)求助

解决方案:API 30+ 推送权限适配导致应用启动崩溃问题

核心原因

Android 11(API 30)开始,POST_NOTIFICATIONS 权限不再自动授予,改为运行时权限。如果应用在启动阶段未获取该权限就直接执行通知相关操作(如创建通知渠道、初始化推送SDK),会触发权限异常导致崩溃。

具体修复步骤

  • 1. 清单文件添加权限声明
    在AndroidManifest.xml中添加权限:

    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <!-- 保留原有推送相关基础权限(如网络、唤醒锁) -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
  • 2. 启动时先检查并申请权限
    在应用第一个启动的Activity中,先确认通知权限状态,未授权则发起申请,避免在权限未确认前执行通知相关逻辑:

    // Kotlin 示例
    private val requestNotificationPermission = registerForActivityResult(
        ActivityResultContracts.RequestPermission()
    ) { isGranted ->
        if (isGranted) {
            // 权限授予后再初始化推送服务、创建通知渠道
            initPushService()
        } else {
            // 权限拒绝时,处理无通知权限的场景(如禁用推送功能)
            disablePushFunctionality()
        }
    }
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            if (ContextCompat.checkSelfPermission(
                    this,
                    Manifest.permission.POST_NOTIFICATIONS
                ) != PackageManager.PERMISSION_GRANTED
            ) {
                requestNotificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS)
            } else {
                initPushService()
            }
        } else {
            // API <33 无需申请,直接初始化推送
            initPushService()
        }
    }
    
  • 3. 升级第三方推送SDK版本
    如果使用第三方推送服务(如Firebase Messaging、极光推送等),必须升级到适配API 30+的版本:

    • Firebase Messaging:升级至23.0.0及以上
    • 极光推送:升级至JPush 4.0.0及以上
      旧版本SDK未处理新权限逻辑,会在启动时直接调用通知API引发崩溃。
  • 4. 排查崩溃日志定位问题
    如果上述步骤无效,提取崩溃日志(通过Android Studio Logcat或崩溃统计工具查看),重点关注SecurityException或通知相关异常,定位到具体代码行后针对性修复。

内容的提问来源于stack exchange,提问作者Gebhard Blank

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:55:18