在本文之后,我在Xamarin Forms 5中实现了推送通知:https://learn.microsoft.com/en-us/azure/developer/mobile-apps/notification-hubs-backend-service-xamarin-forms,但当目标Android 31上的像素6a,我得到非沉默(数据)通知,但当我点击他们与我的应用程序在后台,我得到一个错误说“间接通知活动开始(蹦床)阻止X”。
我找到的唯一解决方法是取消选中以下选项:
- 开发人员设置-〉不在屏幕上弹出通知-〉不在屏幕上弹出通知:
有没有办法在Android的Xamarin Forms代码中禁用这个选项,这样我就不必要求我的用户启用开发者选项并取消选中这个选项?
我发现这篇文章解释了为什么Android 12添加了此限制,但还没有找到通过编程方式禁用此选项的方法:https://proandroiddev.com/notification-trampoline-restrictions-android12-7d2a8b15bbe2
1条答案
按热度按时间kq0g1dla1#
您可以查看此链接Indirect notification activity start (trampoline) from blocked以了解更多信息。
更新应用程序
如果您的应用从充当通知蹦床的服务或广播接收器启动Activity,请完成以下迁移步骤:
1.创建一个PendingIntent对象,该对象与用户在单击通知后看到的Activity相关联。
1.在构造通知的过程中,使用您在上一步中创建的PendingIntent对象。
要标识活动的源(例如,要执行日志记录),请在发布通知时使用extra。对于集中式日志记录,请使用ActivityLifecycleCallbacks或Jetpack生命周期观察器。