首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度链接通知不能在android 12中工作(当用户单击通知时不打开应用程序)

深度链接通知不能在android 12中工作(当用户单击通知时不打开应用程序)
EN

Stack Overflow用户
提问于 2022-11-04 04:33:56
回答 1查看 103关注 0票数 0

它运行良好,应用程序也在生产中。但最近我们注意到,在android 12上,当用户单击通知时,它不会打开应用程序,并导航深度链接所具有的片段/活动。

但是,一旦用户打开应用程序,深度链接就会被触发(如果用户之前单击了通知)并将用户移动到位于深度链接中的目的地。而且,如果用户在应用程序中并单击通知,它也会正常工作。但是如果用户在应用程序之外,在这种情况下就不能工作了。我们还尝试将firebaseBomVersion升级到最新版本(31.0.2)。但似乎什么都起不到作用。

还有其他与深度链接不适用于android 12有关的在线帖子,但它们都有不同的问题。

有人知道这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-04 14:56:23

最后,问题是

代码语言:javascript
复制
system_process E/NotificationService: Indirect notification activity start (trampoline) from com.xyz.debug blocked

在android 12和更高版本上,我们不能在通知龙头上启动服务或广播接收器的活动(这就是我在这里所做的),我试图从广播接收器启动一个活动,当用户点击通知时,我正在发射该广播。

当用户与通知交互时,一些应用程序通过启动一个应用程序组件来响应通知龙头,该组件最终启动用户最终看到和与之交互的活动。这个应用程序组件被称为通知蹦床。 为了改善应用程序性能和用户体验,针对Android 12或更高版本的应用程序不能从用作通知蹦床的服务或广播接收器开始活动。换句话说,当用户点击通知或通知中的操作按钮后,应用程序就不能在服务或广播接收器中调用startActivity()。 当应用程序试图从充当通知蹦床的服务或广播接收器启动活动时,系统将阻止该活动启动,并且

文档链接

我是如何简单地解决这个问题的呢?我使用了相同的代码,即在对Android11和更低设备的通知中向setContentIntent()添加一个广播,并将它附加到sendBroadcast()上,但是对于Android12和更高的设备,我将广播替换为activity (一种具有透明背景的活动),在该活动中,我放置了与我在Android11和较低设备上使用的相同的广播代码,然后使用sendBroadcast()方法,我自己发射了这个意图,在完成该活动之后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74312248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档