检测深度链接是从Android应用程序打开还是在其外部

问题描述:

我有一个问题来检测(本机方式)如果从应用程序(例如,从浏览器)启动深层链接,现在我检查getIntent().getPackage() == null但这不工作的Android 6,因为我配置了一个深的链接,如应用程序链接see),这些有getIntent().getPackage()检测深度链接是从Android应用程序打开还是在其外部

有什么想法?

您仍然可以在Android 6之前的版本上使用getIntent().getPackage() == null,并在Android 6及更高版本上使用getReferrer()available since API 22)。

+0

我不认为使用引荐会工作,因为getReferrer返回具有URI参数引用的值。当我第一次安装应用程序时,需要将参数从谷歌商店传递到应用程序时,我使用了INSTALL_REFERRER。 –

根据版本代码,您应该检查activity.getReferrer()activity.getIntent().getParcelableExtra(Intent.EXTRA_REFERRER)。这些方法返回给你的引用URL。然后,您可以通过referrerUri.getScheme()查看方案。

这是一个很好的codelab示例,显示了如何跟踪深层链接引用(第6步是你需要的)。

https://codelabs.developers.google.com/codelabs/deeplink-referrer/#5