伙计们需要帮助:(
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 +
如果我的应用程序使用任何第三方应用程序打开,是否可以检测应用程序包名称?
谢谢大家!
答案 0 :(得分:0)
我的APP B无法检索Google Chrome浏览器应用包名称。
正确。不要求应用在任何EXTRA_REFERRER
中包含Intent
额外内容,即使他们这样做,也可以在其中放置假Uri
。
BaseActivity.this.getReferrer()。getHost(),这返回我想要的正确的app包名称
不一定。引用the documentation:“请注意,这不是安全功能 - 您无法信任引荐来源信息,应用程序可以欺骗它。”
如果我的应用程序使用任何第三方应用程序打开,是否可以检测应用程序包名称?
没有