首页 > 解决方案 > 如何确定谁在我的应用中启动了深层链接

问题描述

为了安全起见,我需要找出哪个应用正在向我的应用启动深层链接

有没有人这样做过?

有一些解决方案,例如使用挂起的意图来查找创建者包名称,但它对我不起作用。

有任何想法吗?

标签: androiddeep-linkingandroid-securityandroid-deep-link

解决方案


您可以使用getReferrer().getHost()来获取启动您的应用程序的应用程序的包名称。

例如,如果一个链接是从启动您的应用程序的 Google 文档启动的,它将返回com.google.android.apps.docs.editors.docs.

请参阅Activity#getReferrer(),但正如文档所述,如果应用程序想要欺骗它或将其留空,它可以。所以,不是100%。

否则,请诉诸诸如获取最近和正在运行的应用程序列表之类的方法而不是进程,并获取您之前的最后一个应用程序/活动。


推荐阅读