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

如何在Android 12L及更低版本中申请Post Notification权限?

Android 12L及更早版本中引导用户开启通知权限的解决方案

在Android 12L及更早版本中,POST_NOTIFICATIONS不属于危险权限范畴,系统不支持通过requestPermissions()唤起动态权限申请弹窗——这就是你之前的代码能检测权限状态,但弹框不出现的原因。

针对这类版本,正确的做法是直接引导用户跳转到应用的通知设置页面,让用户手动开启权限,具体实现如下:

完整代码示例(Kotlin)

val permissionState = ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS)
if (permissionState == PackageManager.PERMISSION_DENIED) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
        // Android 13+ 执行标准动态权限申请流程
        ActivityCompat.requestPermissions(
            this,
            arrayOf(Manifest.permission.POST_NOTIFICATIONS),
            1
        )
    } else {
        // Android 12L及以下,跳转至应用通知设置页
        val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {
            putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
            // 可选:指定跳转至某个具体通知渠道的设置页
            // putExtra(Settings.EXTRA_CHANNEL_ID, "your_notification_channel_id")
        }
        startActivity(intent)
    }
}

关键说明

  • 跳转设置页后,用户可以直接在系统设置中开启通知权限,返回应用后可再次调用checkSelfPermission()确认权限状态。
  • Android 13+版本必须在AndroidManifest.xml中声明POST_NOTIFICATIONS权限才能正常申请,低版本声明该权限不会产生负面影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:42:55