android广播发送应用程序的软件包名称

问题描述 投票:0回答:1
我知道

BroadcastReceiver

功能/功能在Android中的工作方式,并且我已经实施了我的应用程序要么接收或发送的多个操作。

wow,每当我的一个应用程序中的一个收到广播时,我都想知道该应用程序发送了该广播。

示例(我有三个应用程序):

Application AApplication B
允许将广播发送至

Application C
当收到广播时,我想知道哪个应用程序发送了此广播,无论是
Application C

Application A

吗?

注:我知道我可以在
Application B
中添加一个
extra
并发送软件包名称,但是我正在寻找一个“自动生成”的字段。  我不想每次进行以下操作:

Intent

,你问吗?  上面只是一个例子。可能有两个以上的应用程序发送广播,我不希望它们每次发送the Package name。

我还注意到有
intent.putExtra("package_name", getPackageName());
方法,但是总是返回

Intent
getPackage()

	

我想知道哪个应用程序发送了此广播,应用程序A或应用程序B?



将其作为额外的添加。

我正在寻找一个“自动生成”的字段。
没有。默认情况下,一个

Intent
不包含有关创建该应用程序的信息,而不是
null
android android-intent broadcastreceiver
1个回答
3
投票
我还注意到有意图的getPackage()方法,但是总是返回null。

,这是因为您没有打电话
@Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); switch (action) { case MY_GLOBAL_ACTION: // this is where I want the package name of the application that sent the broadcast intent.getPackage(); // this is always null break; default: break; } }

。而且,由于该软件包无法识别发件人,因此不会为您提供帮助。

最终我们有一个API:

Broadcastreceiver.getSentFrompackage

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.