Android 是否可以通过Intent找出哪个应用程序与我的应用程序共享了某些内容?

Android 是否可以通过Intent找出哪个应用程序与我的应用程序共享了某些内容?,android,android-intent,Android,Android Intent,我有一个视频播放器应用程序,还有一些应用程序与我的应用程序共享视频。从技术上讲,任何通过意图共享视频的应用程序都可以与我的应用程序共享视频,但我的应用程序接受一些更复杂的选项,有些应用程序也会通过 我想知道是否有办法让我的应用程序知道哪个应用程序发送了Intent?不,目前不可能 只有当发送方有意保留一个额外字段时,才能确定发送方的来源 有关更多详细信息,您可以查看此->否,目前不可能 只有当发送方有意保留一个额外字段时,才能确定发送方的来源 要了解更多详细信息,您可以查看此->实际上,活动中有

我有一个视频播放器应用程序,还有一些应用程序与我的应用程序共享视频。从技术上讲,任何通过
意图
共享视频的应用程序都可以与我的应用程序共享视频,但我的应用程序接受一些更复杂的选项,有些应用程序也会通过


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

不,目前不可能

只有当发送方有意保留一个额外字段时,才能确定发送方的来源


有关更多详细信息,您可以查看此->

否,目前不可能

只有当发送方有意保留一个额外字段时,才能确定发送方的来源


要了解更多详细信息,您可以查看此->

实际上,活动中有一个
参考者
(从API 22开始),它不是100%保证的,但我已经在应用程序中使用过,效果非常好。这是它的基本原理

返回有关发起此活动的人员的信息。如果发射 Intent包含Intent.EXTRA\u referer,将按原样返回; 否则,如果已知,android应用程序:referer URI包含 将返回启动意图的包名称。这可能会回来 如果无法识别任何引用者,则为null——它既不是显式的,也不是显式的 指定,也不知道涉及哪个应用程序包


您可以使用Java中的
Activity.getRefferer()
或Kotlin中的
referer
来获取它,实际上在活动中有一个
referer
(从API 22开始),它不是100%保证的,但我已经在一个应用程序中使用过,而且效果非常好。这是它的基本原理

返回有关发起此活动的人员的信息。如果发射 Intent包含Intent.EXTRA\u referer,将按原样返回; 否则,如果已知,android应用程序:referer URI包含 将返回启动意图的包名称。这可能会回来 如果无法识别任何引用者,则为null——它既不是显式的,也不是显式的 指定,也不知道涉及哪个应用程序包


您可以使用
Activity.getRefferer()获得它
在Java中还是在Kotlin中简单地
referer
你想知道所有可以与你的应用程序共享视频的应用程序中的应用程序,还是只想知道应用程序中知道你的应用程序更复杂选项的名称?我想知道任何与我共享的应用程序,无论是什么,但我会满足于那些通过更具体的附加功能的应用程序。让我试试几个POC,如果我能找到任何对你有用的东西,我会给你回复。最常见的是,大多数标准应用程序都会在Intent extras中发送应用程序包,这样你就可以在那里查看Intent的附加功能,你会得到程序包名称。你想知道所有应用程序中的应用程序吗可以与你的应用程序共享视频的应用程序,或者你只想知道应用程序中知道你应用程序更复杂选项的名称?我想知道任何与我共享的应用程序,无论是什么,但我会满足于那些通过更具体的附加功能的应用程序。让我尝试一些POC,如果我能找到任何对你有用的东西,我会给你回复。最常见的是,大多数标准应用程序都会在Intent extras中发送应用程序包,这样你就可以在那里检查Intent的附加功能,你会得到包名。这正是我需要的,谢谢,正是我需要的,谢谢。