首页 > 解决方案 > 是否可以通过 Intent 找出哪个应用与我的应用共享了某些内容?

问题描述

我有一个视频播放器应用程序,并且有一些应用程序可以与我的应用程序共享视频。从技术上讲,任何通过 a 共享视频的Intent应用程序都可以与我的应用程序共享它,但是我的应用程序接受一些更复杂的选项,一些应用程序也将通过。

我想知道是否有办法让我的应用程序知道哪个应用程序发送了Intent

标签: androidandroid-intent

解决方案


实际上有一个referrerin Activity(自 API 22 起)不是 100% 保证的,但我已经在应用程序中使用它并且效果很好。这是它的文档

返回有关谁发起此活动的信息。如果启动 Intent 包含 Intent.EXTRA_REFERRER,则将按原样返回;否则,如果已知,将返回包含启动 Intent 的包名称的 android-app:referrer URI。如果无法识别引荐来源网址,这可能会返回 null ——它既没有明确指定,也不知道涉及哪个应用程序包。

您可以使用Activity.getRefferer()Java 或简单地referrer使用 Kotlin来获取它


推荐阅读