如何在 Android 13 中安排通知?

Pat*_*ick 5 notifications android alarmmanager android-pendingintent android-permissions

之前关于 Stack Overflow 的问题并未考虑 Android 13 的新权限模型,因此我提出了一个新问题。

\n

我的应用程序当前使用 AlarmManager 在未来的预定义点为用户设置通知。将此视为事件发生前的“提醒”,在用户定义的时间段内(例如事件发生前 0/1/5/15/30 分钟)

\n

在 Android 13 中,我现在需要考虑 2 个新权限:

\n
    \n
  • SCHEDULE_EXACT_ALARM\xe2\x80\x93 安排 PendingIntent 唤醒设备以发送通知。提醒/通知是我的应用程序中的次要功能,这就是我不使用其他权限的原因 ( USE_EXACT_ALARM)
  • \n
  • POST_NOTIFICATIONS\xe2\x80\x93 实际向用户显示通知。
  • \n
\n

这是否意味着对于我的应用程序的新用户,我现在需要通过两个单独的权限接受流程向他们发送?

\n

具体来说,用于POST_NOTIFICATIONS接受或拒绝通知的运行时对话框,以及用于SCHEDULE_EXACT_ALARM用户设置应用程序的意图以允许警报和提醒(以便我可以在将来安排通知)。

\n

两个独立的权限流感觉不是最优的。我是否正确地阅读了本文,或者是否有一种更用户友好的方式来安排将来的通知?

\n

相关文档在这里:

\n\n

Pat*_*ick 0

对于这种情况,我最终在我的应用程序中构建了一个权限接受流程。

简而言之,我的应用程序检查用户是否已授予SCHEDULE_EXACT_ALARM和。POST_NOTIFICATIONS如果其中之一尚未被授予,用户将无法安排通知,我会自动向用户发送权限设置体验。

在 Android 13 中,这还不错,因为SCHEDULE_EXACT_ALARM会自动授予用户(尽管他们当然可以禁用此权限,因此应用程序仍然需要检查此权限),因此用户只需授予权限即可POST_NOTIFICATIONS

我预计在 Android 14+ 中SCHEDULE_EXACT_ALARM不会自动授予。对于这种情况,这是令人沮丧的,因为与POST_NOTIFICATIONS具有良好的运行时对话框不同的是,SCHEDULE_EXACT_ALARM涉及将用户从我的应用程序深层链接到 Android 设置。此应用程序切换是一种次优体验。

我附上了一些关于如何在我的应用程序中处理此问题的图像。如果有更好的方法来实现这一点,我愿意接受想法,但这暂时解决了这个问题。

1:权限设置界面 2:授予权限:POST_NOTIFICATIONS
权限设置屏幕 POST_NOTIFICATIONS 授予
3:授予权限:SCHEDULE_EXACT_ALARM 4:所有权限准备就绪
SCHEDULE_EXACT_ALARM 授予 所有权限准备就绪