为什么Android 13删除了前台服务通知?

32 android android-notifications foreground-service android-13

抱歉,这种标题是吸引点击的标题;我想不出更简洁的方式来表达它。

在 Android 13 中,如果用户未授予“危险”POST_NOTIFICATION权限,则前台服务通知不会显示在通知抽屉中。相反,为了让用户看到它,他们必须导航到新的前台服务任务管理器,根据文档

如果用户拒绝通知权限,他们仍然会在前台服务 (FGS) 任务管理器中看到与这些前台服务相关的通知,但不会在通知抽屉中看到它们。

现在我还没有使用过 Android 13 Beta,所以我不知道当前台服务运行时 FGS 任务管理器到底会是什么样子,但我认为强制前台服务发出通知的全部意义在于以便用户知道应用程序何时运行。这甚至会产生安全后果,因为 Android 限制了后台进程与前台进程可以使用危险权限(例如ACCESS_BACKGROUND_LOCATION)执行的操作。此更改本质上允许应用程序使用基于前台的权限,而无需明确通知用户。

那么,他们为什么决定限制前台服务通知呢?我的意思是,首先还有关于添加限制通知的其他讨论。但有人会认为,如果 Android强制您使用通知,那么就不应该有办法绕过它(即从不请求权限POST_NOTIFICATION,甚至只是以编程方式删除权限)。

Mar*_*rei 10

此更改的好处是您不会让通知区域充满图标。看这里正常使用时的样子。并看到这里详细时看起来如何。

如果您想要更好的解释,请查看此处的文档。


小智 6

来自文档

Android 13(API 级别 33)开始,用户可以默认关闭与前台服务关联的通知。为此,用户在通知上执行滑动手势。在以前版本的 Android 上,除非前台服务已停止或从前台删除,否则无法关闭通知。

如果您希望用户不可忽略通知,请setOngoing()在使用 创建通知时将 true 传递到方法中Notification.Builder

https://developer.android.com/guide/components/foreground-services#handle-user-initied-stop

在此输入图像描述