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

Android 13下targetSdk<33时PackageInfo.requestedPermissions返回POST_NOTIFICATIONS异常

问题分析:POST_NOTIFICATIONS权限在不同targetSdk版本下的表现差异

核心原因

这是Android 13(API 33)对通知权限的规则变更导致的,具体差异逻辑如下:

  • 当targetSdk < 33时:
    Android 13之前的系统中,应用默认拥有发送通知的权限,无需显式声明<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>。这类低targetSdk的应用运行在Android 13设备上时,系统会自动为其隐式添加该权限,因此调用PackageInfo.requestedPermissions时会返回这个权限。

  • 当targetSdk >= 33时:
    Android 13开始将POST_NOTIFICATIONS列为危险权限,必须在AndroidManifest.xml中显式声明该权限,才会被计入requestedPermissions列表。如果清单中没有声明,即便系统在运行时可能默认允许通知(取决于设备设置),PackageInfo里也不会包含这个权限。

对应你的场景验证

你的测试项目未添加任何权限声明:

  • targetSdk <33时,系统兼容旧逻辑,自动注入该权限到权限列表;
  • targetSdk >=33时,由于未显式声明,requestedPermissions自然为空。

补充说明

如果你的应用targetSdk升级到33+且需要发送通知,必须在清单中添加:

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

之后还需在运行时动态申请该权限,用户授权后才能正常发送通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 16:41:05