Я знаю о том, как Broadcastreceiver Функция/функциональность работает в Android, и я реализовал несколько действий, которые мое приложение получит или отправит.
Однако всякий раз, когда одно из моих приложений получает трансляцию, я хочу знать, какое приложение отправило эту трансляцию.
Application A и приложение B разрешено отправлять трансляцию в приложение C .
Когда приложение C получает трансляцию, я хочу знать, какое приложение отправило эту трансляцию, либо приложение A или приложение B ? Это «автоматическое». Я не хочу делать следующее каждый раз: < /p>
intent.putExtra("package_name", getPackageName());
< /code>
Причина, спросите вы? Выше - просто пример. Может быть более двух приложений, отправляющих трансляции, и я не хочу, чтобы они отправляли имя пакета в намерении < /code> каждый раз. < /P>
Я также заметил, что есть 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;
}
}
Подробнее здесь: https://stackoverflow.com/questions/406 ... ckage-name