android - 是否可以通过 Intent 找出哪个应用与我的应用共享了某些内容?
问题描述
我有一个视频播放器应用程序,并且有一些应用程序可以与我的应用程序共享视频。从技术上讲,任何通过 a 共享视频的Intent
应用程序都可以与我的应用程序共享它,但是我的应用程序接受一些更复杂的选项,一些应用程序也将通过。
我想知道是否有办法让我的应用程序知道哪个应用程序发送了Intent
?
解决方案
实际上有一个referrer
in Activity(自 API 22 起)不是 100% 保证的,但我已经在应用程序中使用它并且效果很好。这是它的文档。
返回有关谁发起此活动的信息。如果启动 Intent 包含 Intent.EXTRA_REFERRER,则将按原样返回;否则,如果已知,将返回包含启动 Intent 的包名称的 android-app:referrer URI。如果无法识别引荐来源网址,这可能会返回 null ——它既没有明确指定,也不知道涉及哪个应用程序包。
您可以使用Activity.getRefferer()
Java 或简单地referrer
使用 Kotlin来获取它
推荐阅读
- java - Java泛型绑定类型和类型参数
- java - 如何在 Java Android Studio 错误中使用 Android Camera 拍照
- cypress - 使用 Cypress 和 Node-imap 测试接收邮件失败,缺少“net”模块
- python - 将频繁的 n-gram 特征与字典特征相结合
- javascript - 如何用数组创建参数?
- task - 任务运行分钟。多少时间
- linux - regmap_add_irq_chip函数的理解
- php - PHP 5.4 Call-time pass-by-reference - 如何修复它?
- angular - 使用 Angular 为故事书实现 StoryShots
- neo4j - 在 Cypher 中为每个节点创建 50 个节点