请求在 Compose 和 Android 13 中发送推送通知的权限

Request permission to send PUSH notifications in Compose and Android 13

提问人:Сергей Беляков 提问时间:7/30/2023 更新时间:7/30/2023 访问量:130

问:

一个稍微不平凡的任务:项目进入 MVI + 轨道,并且出现了一个任务来请求发送推送通知的权限。但问题是,最好的方法是什么?有条件地出现一个对话框,其中有 2 个按钮“取消”和“设置”。当用户单击“设置”时>必须将其传输到设备设置以激活推送通知。如果用户允许通知,则我们会执行一些操作。问题是,当您单击“设置”时,会从 ViewModel 调用一个方法,然后从那里调用 postSideEffect,其中应该已经发出了允许推送通知的请求。我该怎么做?先谢谢你!

P.S. 还需要以某种方式跟踪用户是否已经拥有权限,而不是调用提供获取权限的对话框。

我的代码:

viewModel.collectSideEffect { sideEffect ->
    when (sideEffect) {
    ...
    SideEffect.OpenSettings -> {
         // write logic here and somehow save in state information that permission has been received
    }
    ...
}
人造人 android-jetpack-compose android权限 副作用

评论

0赞 CommonsWare 7/30/2023
“请求发送推送通知的权限”——这是什么意思?
0赞 Сергей Беляков 7/30/2023
@CommonsWare 用户需要进入应用设置界面,给予推送权限
0赞 CommonsWare 7/30/2023
Android 没有将“发送推送通知”作为操作系统或 SDK 的一部分的机制。如果您指的是权限,则与任何类型的“发送”或“推送”概念无关。如果您的意思是通过 Firebase Cloud Messaging 发送推送消息,我不知道除了权限(不需要在运行时请求)之外,还涉及任何 Android 系统权限。这就是为什么我问你说的“发送推送通知”是什么意思。POST_NOTIFICATIONSINTERNET
1赞 CommonsWare 7/31/2023
关于在 Compose UI 应用程序中请求运行时权限的文章已经很多了,例如 thisthisthisthis
1赞 CommonsWare 7/31/2023
还有各种库可以简化该过程,例如 thisthisthis。 与其他运行时权限没有什么不同,因此这些材料应该会有所帮助!POST_NOTIFICATIONS

答: 暂无答案