1.3 KiB
1.3 KiB
#安卓
在 Android 13(Tiramisu)中,POST_NOTIFICATIONS
权限被引入,用于控制应用发送通知的权限。然而,它与其他权限有所不同:它不是在 AndroidManifest.xml
中声明的,而是通过运行时请求。
在 Android 13 之前,应用可以直接在后台发送通知,用户无需单独授权;但 Android 13 开始对这一权限进行限制,要求用户在应用运行时授予 POST_NOTIFICATIONS
权限。
如何在 Android 13 中请求 POST_NOTIFICATIONS
权限
- 检查系统版本:在代码中检查系统是否为 Android 13 或更高版本。
- 请求权限:在应用启动或需要发送通知时,使用
ActivityCompat.requestPermissions
请求该权限。
示例代码
public int areNotificationsEnabled() {
boolean permissionGranted = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
permissionGranted = mContext.checkCallingOrSelfPermission(Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED;
boolean notificationsEnabled = getNotificationManager().areNotificationsEnabled();
if (permissionGranted)
return notificationsEnabled ? PERMISSION_STATUS_ALLOWED : PERMISSION_STATUS_NOTIFICATIONS_BLOCKED_FOR_APP;
return PERMISSION_STATUS_DENIED;
}