Android 13.0 适配——运行时通知权限

Android 13.0 适配——运行时通知权限

前言

在Android 13上对通知的行为做了一些变更,例如通知运行时权限,主要用于从应用发送非豁免通知的运行时权限:POST_NOTIFICATIONS,如果不申请并且允许则无法发送通知。有助于用户专注于最重要的通知。

notification.jpg

声明权限

如果targetSdk>=33,首先需要在应用的清单文件中先声明权限:

XXXXX

运行时权限申请

然后完成从Android 6.0开始的那套运行时权限申请流程,可以看一下我的另一篇文章:

Android 6.0 适配——管理运行时权限

权限对话框的选择

选择允许

发送通知

发送与前台服务相关的通知

选择不允许

无法发送通知,除非该应用符合豁免条件,例如与媒体会话有关的通知

一旦用户选择不允许,下次系统将不会再出现权限申请的弹窗

手动引导用户去打开权限:

首先判断是否有通知权限

val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager

notificationManager.areNotificationsEnabled()

如果没有通知权限,跳到设置界面打开通知权限

private fun startNotificationSetting() {

val applicationInfo = applicationInfo

try {

val intent = Intent()

intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK

intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"

intent.putExtra("app_package", applicationInfo.packageName)

intent.putExtra("android.provider.extra.APP_PACKAGE", applicationInfo.packageName)

intent.putExtra("app_uid", applicationInfo.uid)

startActivity(intent)

} catch (e: Exception) {

val intent = Intent()

intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK

intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"

intent.data = Uri.fromParts("package", applicationInfo.packageName, null)

startActivity(intent)

}

}

滑开对话框,不按任何一个按钮

没有任何变化,下次进入对应位置时仍可以弹出通知权限对话框

注意点

应用无需请求POST_NOTIFICATIONS权限即可启动前台服务,但是应用仍必须在启动前台服务时提供一个通知。

结尾

这个更新呢重点还是在于改善用户的体验,用户能够自主选择是否接受应用推送的通知,减少被打扰的情况。

相关推荐

Android单元测试只看这一篇就够了
mobile365官网是多少

Android单元测试只看这一篇就够了

📅 07-24 👁️ 4322
淘宝,越来越“膨胀”了
beat365中文官方网站

淘宝,越来越“膨胀”了

📅 07-11 👁️ 6029
乌拉圭VS沙特
365bet官网提现说维护

乌拉圭VS沙特

📅 07-12 👁️ 692