Android - 从app(第三方)获取启动我的应用活动的应用包名称

时间:2016-07-28 11:03:05

标签: android

伙计们需要帮助:(

ComponentName componentName = ShareCompat.getCallingActivity(this);

String callingPackage = ShareCompat.getCallingPackage(this);

我可以从上面的代码中获取应用程序包名称,如果我的APP A(com.demo.app.a)startActivityForResult()APP B.

在APP B,我可以得到:com.demo.app.a

但是,如果APP B()由Google Chrome浏览器打开(来自Intent Action.View by scheme)。我们说我的应用支持https方案。

我的APP B无法检索Google Chrome浏览器应用包名称。

注意:Google Chrome浏览器只是一个例子。

BaseActivity.this.getReferrer()。getHost(),这返回我想要的正确的应用程序包名称。但这只是可用的API 22 +

如果我的应用程序使用任何第三方应用程序打开,是否可以检测应用程序包名称?

谢谢大家!

1 个答案:

答案 0 :(得分:0)

  

我的APP B无法检索Google Chrome浏览器应用包名称。

正确。不要求应用在任何EXTRA_REFERRER中包含Intent额外内容,即使他们这样做,也可以在其中放置假Uri

  

BaseActivity.this.getReferrer()。getHost(),这返回我想要的正确的app包名称

不一定。引用the documentation:“请注意,这不是安全功能 - 您无法信任引荐来源信息,应用程序可以欺骗它。”

  

如果我的应用程序使用任何第三方应用程序打开,是否可以检测应用程序包名称?

没有