我知道BroadcastReceiver
功能/功能在Android中如何工作,並且我已經實現了多個應用程序可以接收或發送的操作。Android廣播發送應用程序的包名
但是,每當我的某個應用程序收到廣播時,我想知道哪個應用程序發送了該廣播。
實施例(I有三個應用程序):
Application A
和Application B
被允許廣播發送到Application C
。
當Application C
收到廣播,我想知道哪個應用程序發送此廣播,要麼Application A
或Application B
?
注意:我知道我可以在Intent
中添加extra
併發送包名稱,但是我正在查找「自動生成」字段。我不想每次都做以下事情:
intent.putExtra("package_name", getPackageName());
原因,你問?以上只是一個例子。可能有兩個以上的應用程序發送廣播,我不希望它們每次都在Intent
中發送包名。
我也注意到有getPackage()
方法Intent
,但總是返回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;
}
}
這是令人失望的,但它是什麼。謝謝 –